#include <stdio.h>
int main(void)
{
/* an array with 5 rows and 2 columns*/
char* a[5][2];
int y, p;
for(y = 0; y < 5; y++)
{
for(p = 0; p < 2; p++)
{
scanf("%s", a[y][p]);
}
}
int i, j;
/* output each array element's value */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
printf("a[%d][%d] = %s\n", i,j, a[i][j]);
}
}
return 0;
}
插入2串后,我已经得到一个分段故障作为该计划的输出。任何人都可以告诉我我的代码有什么问题吗?分段故障
第1步提前调试:什么是您的调试器说? – tadman
提示:您的'a'字符缓冲区永远不会被初始化,那么'scanf'在哪里放置这些数据?可能在一些随机指针位置并炸毁你的程序。 – tadman
另一个提示:在'scanf(“%s”,a [y] [p])之前需要一行'a [y] [p] = malloc(X);'',其中'X'是要读取的字符串的长度加上1. – DyZ