注:CはMicrosoftCコンパイラです。
次のコードで問題が発生しています。
*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の要素0が適切に設定されます。
ただし、ループの2番目の要素(要素1)は、実行時に常にアクセス違反になります。
コードの後半でも2D配列を使用してこの問題が発生しましたが、これはまったく同じ問題であり、これが最も単純なケースであると考えています。
ここで最初の要素以外を設定することが不可能であると思われる理由を誰かが理解するのを手伝ってもらえますか?