gpt4 book ai didi

c++ - 带有括号 "("、 ")"而不是方括号 "["、 "]"的新运算符

转载 作者:可可西里 更新时间:2023-11-01 18:15:54 29 4
gpt4 key购买 nike

我在我的代码中发现了一个疯狂的错误。

我写了下面一行:

GLfloat* points = new GLfloat(1024);

而不是

GLfloat* points = new GLfloat[1024];

我刚刚才注意到。在我注意到错误之前,我的代码已经编译并运行了几次。我意识到这是侥幸,但我的问题是我原来的那条线是做什么的?

我注意到它看起来有点像使用指向已分配内存的指针创建类。它会在堆上创建一个初始值为 1024.0 的 GLfloat 吗?如果这是真的,为什么它是有效的语法? (GLfloat 不是一个类,是吗?)

最佳答案

GLfloatfloat 的 OpenGL 别名(即 typedef float GLfloat;)。因此代码:

GLfloat* points = new GLfloat(1024);

相当于:

float* points = new float(1024);

分配一个 float 并将其初始化为1024.0并将其地址分配给指针points

关于c++ - 带有括号 "("、 ")"而不是方括号 "["、 "]"的新运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25448635/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com