私は、C++のフロートの連続したメモリブロックを操作しようとしています。メモリは、私が使用している独自の画像ライブラリのピクセルデータを表します。ライブラリが作成ルーチンの最初のfloatへのポインタを取得するという事実を変更することはできません。たとえば、20x20の画像は、400個の連続したフロートとしてメモリに保持されます。
以下のように、私はこのメモリのポピュレーションをテストするためにループを使用しています。
ループが繰り返されるたびにポインターをインクリメントしていますが、実行時にアクセス違反が発生しています。明らかに、どういうわけかヒープをオーバーランしています。ポインタを正しくインクリメントしていないか、これを誤解しているのではないかと心配しています。
どこが間違っているのですか?私はこれに新鮮な目が走ったことを感謝します:)ありがとう
int width = 500;
int height = 500;
float *img = (float*) calloc(width * height, sizeof(float));
int count = 0;
while (count < (width * height))
{
*img = 1.0f;
count++;
img++;
}
saveImage(width, height, img, TEXT("test.tiff"));
free(img);