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 回答