c++ - "new"无法创建数组?

标签 c++ memory

我要疯了,把一些东西归结为简单的东西,无论我如何尝试或尝试什么,数组都不起作用?怎么了?

代码只是来自 cocos2dx 的单个 cpp helloworld。仅此而已,

    double *Array = new double[333];
if (Array == nullptr)
    CCLOG("Error: memory could not be allocated");

//initialize it
for( int i = 0; i != 333; ++i){
    Array[i] = 333 - i;

}

for( int i = 0; i != 333; ++i){

    CCLOG("Hi %ld", Array[i] );     
}

循环总是打印 0....

我试了很多循环,测试,数组永远不是数组。它总是只是一个 int、double 或我尝试的任何类型的数组?

有什么想法吗?

VS2012 cocos2dx helloworld 现在只剩下一个数组了。 Windows 10

最佳答案

因为您正在尝试以 %ld 格式显示 double 值。 %ld 只能长期使用。恕我直言,你应该:

  • Array[i] 转换为 long :

    CCLOG("Hi %ld", (long) Array[i] );
    
  • 或者使用%g格式:

    CCLOG("Hi %g", Array[i] );
    

这两种方法都应该给你正确的显示。

关于c++ - "new"无法创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27764531/

相关文章:

c++ - 使用 enable_if 禁用模板类的模板构造函数

c++ - 如何使用 C++ Win32API 检查 ADuser "Password never expires"属性检查或不检查?

c++ - 如何让 set::find() 为自定义类对象工作?

c++ - 从 C/C++ 和参数在 GnuPG 中生成公钥/私钥

java - 如何在 android studio 的 If 语句中写入 "if button clicked"?

c++ - 对象替换自身合法吗?

c++ - 为什么我在构建结构时在 Visual C++ 2008 中收到这些警告?

macos - vm_stat 显示的内存少于实际内存

c - 为什么在任意内存位置设置值不起作用?

java - 与 Java 中的 GCHandle.Alloc() 等效的代码?