C++指针数组声明

Spl*_*lit 1 c++ arrays pointers

目前我有几个类,其数组定义为'float myIDs'.我想将变量移动到我的父类中并将其更改为指针('float*myIDs').

目前我正在宣布其价值如下:

float myIDs[] = {
    //Variables
};
Run Code Online (Sandbox Code Playgroud)

由于它现在是一个指针,我认为它将大致相同:

myIDs = new float[] = {
};
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有起作用.我不知道如何解决这个问题,因为我以前从未必须像这样声明一个指针数组.

有人可以帮我吗?

谢谢

zak*_*ter 8

请注意,您没有分配指针数组而只是一个float数组,所以基本上两个数组的类型相同,它们不会存储在同一个内存空间中.

只能以这种方式初始化静态分配的数组,动态分配的数组不能初始化为零以外的任何值.

myIDs = new float[]();
Run Code Online (Sandbox Code Playgroud)

但是,如果您知道要放入数组的元素,则无需动态分配它们.

如果要分配指针数组,则必须执行以下操作:

float* myIDs[size]; // statically
float** myIDs = new float*[size]; // dynamically
Run Code Online (Sandbox Code Playgroud)

但只有静态分配的(第一个)可以按照你描述的方式初始化,当然,它必须用指针初始化.