我主要用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的相同输出,所以我不确定是怎么回事。如果我的代码需要更多,我一定会愿意发布。当然,如果有更好的方法来接近这一点,我很感激。谢谢!
答案 0 :(得分:3)
看起来你做的一切都是正确的。我唯一的猜测是,您平台上的size_t
大于int
,因此提供正确的格式说明符(%z
而不是%d
)可能会解决问题:
fprintf(stdout, "Size of platforms array: %z", sizeof(platforms)/sizeof(Platform));