我正在使用C创建生命游戏,并且在程序从用户输入后我收到此分段错误(核心转储)错误。我最近开始学习C,而且我对指针的理解是基本的。我在网上查找并尝试不同的方法来找到它之后无法找到它。如果我不使用指针并保持简单,一切正常。我将不胜感激任何帮助
Schema::connection('mongodb')
答案 0 :(得分:1)
这里有一个明显的问题。
memcpy(oldGrid, copyGrid,sizeof(oldGrid)); //copy the updated grid to the old one
由于oldGrid
是char**
指针,因此sizeof(oldGrid)
是指针的大小,可能是4或8个字节,具体取决于您的平台。所以,你没有复制网格,你只是复制它的几个字节。
如果要复制整个网格,则需要以字节为单位计算网格的大小。
如果oldGrid
被声明为数组而不是指针,那么sizeof(oldGrid)
将产生您期望的网格的完整大小。在涉及sizeof()
时,数组的行为与指针不同。