原因:
char *d[100];
scanf("%d",&n);
for(i=0;i scanf("%s",d[i]); 没有给d这个数组中的各元素分配存储空间(也即d[0]到d[99]这100个指针变量指向不明确),又强行给这个元素指向的地址写入值 所以,程序崩溃 char *d[100]; 改成 char d[100][100];即可 运行结果:
定义了100的指针数组,但是没有申请内存,scanf的时候会报错,
请改成如下方式试试:
char d[100];
scanf("%d",&n);
for(i=0;i
把主程序中的char * d[100] 这一行改一下试试,改成 char d[100][100];
char *d[100];你申明个指针数组干嘛?有且当做一般的数组来用。。不出问题才怪。。
char d[100][100];才对
代码太多,没看,不过看你的错误提示。意思是,你访问了不存在或没有指向的内存。在看看自己的指针用法是否正确。最好用F10和F11进行调试,出错的地方,就应该能查的到。
for(i=0;i
d[i]=new char[100];//j加上这一句
scanf("%s",d[i]);
}
char *d[100]; 只是100个空指针而已 ,即d[i]空指针,要去new一个空间 d[i]=new char[100]