C语言,为十个字符串排序。输入字符串后出现hw10-12.exe停止工作。
发布网友
发布时间:2022-05-27 13:08
我来回答
共1个回答
热心网友
时间:2023-10-24 11:02
内存访问越界了,所以运行就出错。
根据定义,str[i]都是字符串,字符最多都是80个,也就是从str[i][0]到str[i][79]。所以程序中出现的str[i][80]是越界访问,导致程序停止。
for(i=0;i<N;i++)p[i]=&str[i][80];这句是指针赋值,可以改为
for(i=0;i<N;i++)p[i]=str[i];
同样的scanf("%s",&str[i][80]);这句也有问题,改为
scanf("%s",str[i]);
就没有访问越界问题了