【问题标题】:C++ Dynamic array not allocating memoryC ++动态数组不分配内存
【发布时间】:2021-04-02 03:04:02
【问题描述】:

我正在使用 C++ 中的动态数组并尝试分配内存。但是,当我调试时,我发现内存没有被分配。

在头文件中:

Data *_elements;

在cpp文件构造函数中:

_elements = new Data[10];

其中Data是一个结构体,由string类型和int类型组成。

在调试时,我注意到元素没有分配 10 个内存分配。

我想知道我做错了什么。谢谢!

【问题讨论】:

  • 你有什么证据表明“元素没有被分配 10 个内存分配”?为什么您认为应该分配 10 个,而不是一个大分配?
  • 您的调试器没有显示数组的所有元素。您可以使用_elements[1] 等索引观看内容
  • 谢谢@İsmailDurmaz。显然,我的调试器没有显示它!
  • @SasiKiranGaddipati -- 你应该一直怀疑它是你用来查看变量的工具,而不是程序本身。如果 C++ 编译器没有生成正确的代码来执行简单的new[],那将是一个天大的笑话。
  • fyi,_elements 是一个指针,而不是一个数组,你只需让它指向一个数组。

标签: c++ dynamic-memory-allocation


【解决方案1】:

我很确定内存正在被分配,只是没有显示出来。如果您使用这些内存位置执行任何操作,您将让它们显示在您的调试器中。例如:

//you have something like this in some statement
element[i] //where i is some variable between and including 1-9. lets say 3

您将在调试器中显示element[3]

附:我从 C++ 开始,并作为一个整体进行编程,所以如果我错了,请纠正我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2021-07-17
    • 2013-05-24
    • 2014-12-09
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多