【发布时间】:2021-04-02 03:04:02
【问题描述】:
我正在使用 C++ 中的动态数组并尝试分配内存。但是,当我调试时,我发现内存没有被分配。
在头文件中:
Data *_elements;
在cpp文件构造函数中:
_elements = new Data[10];
其中Data是一个结构体,由string类型和int类型组成。
我想知道我做错了什么。谢谢!
【问题讨论】:
-
你有什么证据表明“元素没有被分配 10 个内存分配”?为什么您认为应该分配 10 个,而不是一个大分配?
-
您的调试器没有显示数组的所有元素。您可以使用
_elements[1]等索引观看内容 -
谢谢@İsmailDurmaz。显然,我的调试器没有显示它!
-
@SasiKiranGaddipati -- 你应该一直怀疑它是你用来查看变量的工具,而不是程序本身。如果 C++ 编译器没有生成正确的代码来执行简单的
new[],那将是一个天大的笑话。 -
fyi,
_elements是一个指针,而不是一个数组,你只需让它指向一个数组。
标签: c++ dynamic-memory-allocation