J
jim
try to run the following code and it cause core dump.
#include <stdio.h>
#include <string.h>
int search (char *p[],char *name);
char *names[]={
"Herb",
"Rex",
"Daenns",
"Joph",
NULL};
int main(void)
{
if (search(names,"Daennis") !=-1)
printf("Dennis is in list");
return 0;
}
int search (char *p[],char * name)
{
while(*p++)
{
if (!strcmp(*p ,name)) return 1;
} return -1;
}
But if I change the subroute to
int search (char *p[],char * name)
{
while(*p)
{
if (!strcmp(*p ,name)) return 1;
p++;
} return -1;
}
It works, why while(*p++) cause core dump?
#include <stdio.h>
#include <string.h>
int search (char *p[],char *name);
char *names[]={
"Herb",
"Rex",
"Daenns",
"Joph",
NULL};
int main(void)
{
if (search(names,"Daennis") !=-1)
printf("Dennis is in list");
return 0;
}
int search (char *p[],char * name)
{
while(*p++)
{
if (!strcmp(*p ,name)) return 1;
} return -1;
}
But if I change the subroute to
int search (char *p[],char * name)
{
while(*p)
{
if (!strcmp(*p ,name)) return 1;
p++;
} return -1;
}
It works, why while(*p++) cause core dump?