问题描述
- 求大神!VS2013下写了个电话本,编译连接都可以就是运行时会挂!
-
这是函数代码
void add_peo(Pcon pcon)
{
if (pcon->count <= MAX_PEO)
{
printf("请输入姓名:");
scanf_s("%s", pcon->nb[pcon->count].name);
printf("请输入年龄:");
scanf_s("%d", &pcon->nb[pcon->count].age);
printf("请输入性别:");
scanf_s("%s", pcon->nb[pcon->count].sex);
printf("请输入电话:");
scanf_s("%s", pcon->nb[pcon->count].tele);
printf("请输入地址:");
scanf_s("%s", pcon->nb[pcon->count].addr);
pcon->count++;
printf("添加成功!n");
}
else
printf("电话本已满!");
}有错吗??
解决方案
- 你的name是什么类型的?如果是char * 或者tchar * 的话,你需要先分配内存,
解决方案二:
这种错误,一般是指针操作越界了。
请检查:
1) 数组的下标是否越界?例如:nb 数组的维数的最大值是否是 MAX_PEO
2) 如果是指针,是否分配了空间?例如:pcon
解决方案三:
我猜测
if (pcon->count <= MAX_PEO) //改为 pcon->count < MAX_PEO
解决方案四:
pcon->nb[pcon->count].name
这个空间有多大,你输入的是否越界了
时间: 2025-01-25 09:02:43