使用calloc后C访问冲突

Rek*_*moc 1 c malloc memory-management calloc

注意:C是Microsoft C编译器.

我遇到以下代码的问题.

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

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

这是一个单独的C文件.在我决定将事情分开以使它们更易于维护之前,我没有遇到这个问题,而且我认为我只是把指针搞得一团糟.

calloc运行正常.

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

但是,循环中的第二个元素(元素1)始终会在运行时导致访问冲突.

我后来在我的代码中遇到了这个问题,并且使用了2d数组,但我认为这是完全相同的问题,这只是最简单的情况.

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

Dan*_*her 5

*Roomsize[roomIndex]是一样的*(Roomsize[roomIndex]).你想说(*Roomsize)[roomIndex].

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