【发布时间】:2014-04-20 16:33:24
【问题描述】:
在一个函数中,我创建了以下 char 数组。
char key1[500]="";
我在函数中循环遍历索引“i”,并通过索引 initialIndex(全局索引)复制全局变量 inputFileArray 的值。
key1[i++]= inputFileArray[initialIndex++];
当我运行时,此语句导致错误 Segmentation Fault(core dumped)。
顺便说一句,这在我使用 Visual Studio C++ 编辑器编译的另一台机器上运行良好。当我尝试在虚拟机上的 ubuntu 13.10 上运行它时出现此错误。感谢您的回答。
【问题讨论】:
-
而
i的值低于500? -
您似乎基本上省略了所有相关代码,这基本上无法回答。
-
仅仅因为代码在另一台机器上没有段错误并不意味着你的索引是正确的。您可以在数组之外为您的程序分配内存,因此即使您在边缘索引,也可以说,您不会出现段错误。然后在另一台机器上,一旦你越界,你就会超出操作系统分配给你的程序的内存,你就会出现段错误。 IE。提供更多代码。
-
您可能还想了解undefined behavior。
标签: c memory segmentation-fault virtual-machine