Dear there, I got inconsistent result on using lfind() and strcmp(), can anyone help me out? Thanks.
Code:
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <search.h>
#include <string.h>
int main(){
char aName[250];
aName[0]='O';aName[1]='H';aName[2]='\0';
char **obj;
obj = (char **)malloc(2*sizeof(char *));
obj[0]= (char *)malloc(3*sizeof(char));
obj[0][0]='O';
obj[0][1]='H';
obj[0][2]='\0';
int result1= strcmp(aName, obj[0]);
fprintf(stdout, "%d\n",result1);
if (result1==0) fprintf(stdout, "aName equals obj[0]\n");
void *result2;
size_t nelp=1;
result2 = lfind((const void*)aName, (const void *)obj, &nelp, sizeof(char *), (int (*) (const void*, const void*))strcmp);
if (result2==NULL)
fprintf(stdout, "aName:%s not found in obj[]\n", aName);
else
fprintf(stdout, "found\n");
int i;
fprintf(stdout, "obj[] is:\n");
for (i=0;i<nelp;i++)
fprintf(stdout, "%s\t", obj[i]);
fprintf(stdout, "\n"); fprintf(stdout, "\n");
}