c++ - 在不知道其尺寸的情况下在 header 中声明一个动态分配的二维数组

标签 c++ dynamic-allocation

我需要在标题中声明一个动态分配的二维数组,但不知道其维度,这将在函数内部建立。

在标题中我想放置:

#define MAX_BARS_ALLOWED 20000
extern int Gregorian[][MAX_LINES_ALLOWED];  //it works

.cpp 文件中,在一个函数内:

int **Gregorian=new int*[NumLastItem+1][MAX_LINES_ALLOWED];  //this does NOT work, why ?

...因为我在一个函数中初始化它,它真的是全局的吗?

谁能教我正确的方法吗?提前谢谢你!!

最佳答案

如果您在函数内部创建与数组同名的新实例,它会覆盖并隐藏上面的实例。您可以分配外部数组,但不要创建具有相同名称的新变量。

关于c++ - 在不知道其尺寸的情况下在 header 中声明一个动态分配的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688297/

相关文章:

c++ - 如何使用指向类成员函数的函数指针来简化 C++ 函数?

c++ - 使用 softmax 进行 Action 选择?

c++ - 使用 for_each 或 accumulate 来计算频率

c - 动态分配的结构数组中的段错误,C

c++ - std::array<> 是否只保证在堆栈上分配?

c++ - 如何仅通过标准库引用二维数组来使用动态创建的一维数组?

c++ - 这两个局部变量有什么区别?

c++ - 在 C++ 中以任何给定度数(例如 45 度)旋转像素数组

c++ - (Visual C++) 删除指针后动态分配内存不是有效指针

c - 如何将数据存储在动态结构数组中?