求大神帮忙看一下这段C语言代码哪有问题,自己做的一道编程题

2024-10-30 18:12:01
推荐回答(6个)
回答1:

原因:

 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];即可


运行结果:

回答2:

定义了100的指针数组,但是没有申请内存,scanf的时候会报错,
请改成如下方式试试:
char d[100];
scanf("%d",&n);
for(i=0;i scanf("%s",&d[i]);

回答3:

把主程序中的char * d[100] 这一行改一下试试,改成 char d[100][100];

回答4:

char *d[100];你申明个指针数组干嘛?有且当做一般的数组来用。。不出问题才怪。。
char d[100][100];才对

回答5:

代码太多,没看,不过看你的错误提示。意思是,你访问了不存在或没有指向的内存。在看看自己的指针用法是否正确。最好用F10和F11进行调试,出错的地方,就应该能查的到。

回答6:

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]