动态分配疑难
#include<stdio.h>#include<string.h>
void main()
{
char *p[5],*d;
int i,j;
printf("输入5个城市\n");
for(i=0;i<5;i++)
gets(p[i]);
for(i=0;i<5;i++){
for(j=0;j<4-i;j++){
if(strcmp(p[j],p[j+1])>0){
d=p[j];
p[j]=p[j+1];
p[j+1]=d;
}
}
}
printf("按字母排列如下\n\n");
for(i=0;i<5;i++)
printf("%s\n",p[i]);
}
我想请教一下为什么用gets(p[i]);却会出现内存问题呢?这个与动态分配有关系吗?
这个问题一直困扰着我,遇到这样的问题就会出错!
麻烦高手能够给我详细的讲解一下什么时候需要用动态分配内存空间!
谢谢了!