C++ C++;构造函数中的动态浮点数?
我的field类需要一个浮点数组。 一切都很好,现在我想让我的高地图更有活力 我刚发现它在我做这件事的时候死了:C++ C++;构造函数中的动态浮点数?,c++,arrays,pointers,C++,Arrays,Pointers,我的field类需要一个浮点数组。 一切都很好,现在我想让我的高地图更有活力 我刚发现它在我做这件事的时候死了: *highMap = new float[mapWidth]; for (int x = 0; x<GFX_Rx; x++) { *highMap[x]=30; } 谢谢您的代码中有一些问题。首先,不能用动态大小声明数组,它甚至不应该编译。第二,在不知道指针指向某个有效位置的情况下,不能取消对指针的引用,这将导致seg错误 如果不想使用std::vector,可以执行
*highMap = new float[mapWidth];
for (int x = 0; x<GFX_Rx; x++)
{
*highMap[x]=30;
}
谢谢您的代码中有一些问题。首先,不能用动态大小声明数组,它甚至不应该编译。第二,在不知道指针指向某个有效位置的情况下,不能取消对指针的引用,这将导致seg错误 如果不想使用std::vector,可以执行以下操作:
#include <iostream>
const int mapWidth = 5;
float** highMap;
int GFX_Rx=5;
int main()
{
highMap = new float*[mapWidth];
for (int x = 0; x<GFX_Rx; x++)
{
highMap[x]=new float(30);
}
}
#包括
常量int mapWidth=5;
浮动**highMap;
int GFX_Rx=5;
int main()
{
highMap=新浮点*[mapWidth];
for(int x=0;xhighMap
声明为一个无大小的float*
数组。如果要动态分配,请删除[]< />代码>声明和额外的<代码> */Cuth.On用法。但一般来说,代码> STD::向量< /C>或其他容器类是一种更好的方法,如果你可以使用的话,你使用哪种编译器?C++中,<代码>浮点*HaveM[]“编译程序”是编译时错误,它应该由编译器来报告,所以我很惊讶它为您编译。也考虑检查循环的边界,如从您的代码中不清楚所分配的内存的大小是否与“GFXRX”变量兼容,它根本不应该编译,不能用动态SIZ声明数组。E
#include <iostream>
const int mapWidth = 5;
float** highMap;
int GFX_Rx=5;
int main()
{
highMap = new float*[mapWidth];
for (int x = 0; x<GFX_Rx; x++)
{
highMap[x]=new float(30);
}
}