相关疑难解决方法(0)

delete []"如何"知道操作数数组的大小?

Foo* set = new Foo[100];
// ...
delete [] set;
Run Code Online (Sandbox Code Playgroud)

您没有将数组的边界传递给delete[].但是这些信息存储在哪里?它是标准化的吗?

c++

235
推荐指数
5
解决办法
3万
查看次数

删除如何工作?

可能重复:
C编程:free如何知道要释放多少?

怎么delete知道它有多少字节可以免费?我读到在new返回的实际指针地址之前有一些块,其中包含块地址详细信息.

这里的任何人都知道这个块有多少字节或者该块的格式是多少?

c++ memory-management

7
推荐指数
1
解决办法
4701
查看次数

删除C++中的函数

我看到了一个使用函数的例子:在cpp中删除,我并没有完全理解它.代码是:

class Name {
    const char* s;
    //...
};

class Table {
      Name* p;
      size_t sz;
public:
      Table(size_t s = 15){p = new Name[sz = s]; }
      ~Table { delete[] p; }
};
Run Code Online (Sandbox Code Playgroud)

什么是命令的具体行动:delete[] p;

我认为目的是删除容器表中的所有指针.

括号中delete[]给出了一个线索,它删除了一个指向Name的指针数组,但没有指定数组的大小,那么析构函数如何"知道"要删除多少指针?

c++ arrays delete-operator

6
推荐指数
1
解决办法
5479
查看次数

标签 统计

c++ ×3

arrays ×1

delete-operator ×1

memory-management ×1