根据DDD我从strcpy中得到一个seg错误,但我无法弄清楚我做错了什么(对C来说还是很新的)。任何帮助将不胜感激,在此先感谢。strcpy Seg Fault
int compare_people(PERSON* first, PERSON* second)
{
char firstName[32];
char secondName[32];
strcpy(firstName, first->name);
strcpy(secondName, second->name);
int returnVal = strcmp(firstName, secondName);
return returnVal;
}
如果name是超过31个字符长,将会写入无效的内存,因为你做的缓冲区是唯一的那么大。 – mukunda 2014-12-01 21:45:41
这些名字平均只有5-10个字符 – Sammdahamm 2014-12-01 21:46:02
我猜'first'或'second'是'NULL'。使用调试器。 – 2014-12-01 21:46:44