gpt4 book ai didi

使用calloc后C访问冲突

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:30 25 4
gpt4 key购买 nike

注意:C 是 Microsoft C Compiler。

我在使用以下代码时遇到问题。

*Roomsize = (int*)calloc(sizeof(int),sched->numberOfRooms);

roomIndex = 0;
for(roomIndex=0; roomIndex< sched->numberOfRooms; roomIndex++)
{
fscanf(inputFile,"%d",&lineInput);
numberOfLinesRead++;
*Roomsize[roomIndex] = lineInput;
}

这是在一个单独的 C 文件中。在我决定将事物分开以使它们更易于维护之前,我并没有遇到这个问题,我认为我只是有点混淆了指针。

calloc 工作正常。

在循环的第一次迭代中,roomIndex 的元素零被正确设置。

然而,循环中的第二个元素(元素 1)总是在运行时导致访问冲突。

稍后我在代码中使用二维数组也遇到了这个问题,但我认为这是完全相同的问题,这只是最简单的情况。

谁能帮我理解为什么除了第一个元素之外似乎不可能设置任何东西?

最佳答案

*Roomsize[roomIndex]*(Roomsize[roomIndex]) 相同。你想说 (*Roomsize)[roomIndex]

(我假设 Roomsize 实际上是一个 int**。如果这不正确,那么问题可能出在其他地方。)

关于使用calloc后C访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com