【发布时间】:2011-11-23 21:24:08
【问题描述】:
这会导致分段错误:
char str1[60];
char**array;
array=malloc( str_nos * sizeof(char *) );
array[i]=malloc( str_len * sizeof(char *) );
strcat(array[i],str1);
strcat(array[i]," ");
str1 取自 scanf,并且少于 60 个字符。 array[i] 来自一个动态的字符串数组。
您知道导致问题的原因吗?它只发生在大量scanfs 中。
【问题讨论】:
-
array[i]太小而无法容纳额外的数据,或者其中一个字符串不是以空值结尾的。 -
您应该提供有关如何分配数组字符串以及如何创建 str1 的更多信息。可能是 str1 对 array[i] 来说太大了。
-
你是如何分配
array[i]的? -
请提供更多代码。可能您尝试向缓冲区写入的数据多于缓冲区的容量。
标签: c string segmentation-fault