[英]Segment fault while reading a string into a char* array
我正在尝试读取一些字符串,然后将它们打印为矩阵形式。
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");
}
}
有什么建议我在这里想念吗?
char *buffer[BUFFER_SIZE]
是字符指针数组。 现在的代码方式是, buffer[i]
是char *
,在您scanf("%s",buffer[i])
时未初始化。 您需要为scanf
分配内存(也许是malloc
),以便在此之前存储字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.