我正在尝试读取一些字符串,然后将它们打印成矩阵形式。
int main(int argc, char **argv)
{
char *buffer[BUFFER_SIZE];
for(size_t i = 0; i < BUFFER_SIZE; i++)
{
scanf("%s",buffer[i]); /**This line is causing segment fault **/
}
for(size_t i = 0; i < BUFFER_SIZE; i++)
{
for(size_t j = 0; j < strnlen(buffer[i], MAX); j++ )
{
printf("%c ",buffer[i][j]);
}
printf("\n");
}
}
有什么建议我在这里缺少什么?
答案 0 :(得分:3)
char *buffer[BUFFER_SIZE]
是一个字符指针数组。您的代码现在的方式buffer[i]
是char *
,在您scanf("%s",buffer[i])
时未初始化。您需要为malloc
分配内存(可能是scanf
),以便在此之前存储字符串。