2

私は主に Java でプログラミングしていますが、C++ を使用する必要があるグラフィックスのコースを受講しています。オブジェクトをループして画面に描画するためにオブジェクトの配列を作成しようとしていますが、この配列を作成する方法を一生理解できません。現在、コンパイラ エラーを生成しないコードがありますが、正しく動作していないようです。次のコードは、私の Main.cpp クラスの先頭にあります。

Platform ground("wallstone.tga", 40, 16, 4, 144);
Platform platform1("wallstone.tga", 10, 16, 4, 20);
Platform platforms[2] = {ground, platform1}

私が試してみるとfprintf(stdout, "Size of platforms array: %d", sizeof(platforms)/sizeof(Platform));、0.0が出力されます。

この配列を作成するいくつかの方法を試してみましたが、それらはすべてエラーまたは 0.0 の同じ出力を生成するように見えるため、何が起こっているのかわかりません。私のコードがさらに必要な場合は、喜んで投稿します。もちろん、これに近づくためのより良い方法があれば、私は感謝しています。ありがとう!

4

1 に答える 1

3

あなたはすべてを正しくやっているようです。私の唯一の推測では、size_tお使いのプラットフォームでは が よりも大きいため、(の代わりに)int正しい書式指定子を指定すると問題が解決する可能性があります。%z%d

fprintf(stdout, "Size of platforms array: %z", sizeof(platforms)/sizeof(Platform));
于 2013-03-09T18:58:41.023 に答える