Mas*_*ief 0 c++ arrays pointers new-operator
我在一本书中看到了这个陈述.
new employee *[num];
Run Code Online (Sandbox Code Playgroud)
employee已经被声明为struct employee而num是一个int;
这是声明中=运算符的右侧.
那么,这个陈述是什么意思?该书没有对上述陈述作出任何解释.
这将分配一个内存,以保持免费存储上的num指针数employee.
例如:
employee** a = new employee* [2]; // 2 pointers on the heap
Run Code Online (Sandbox Code Playgroud)
堆:
address a (e.g. 0x97a0008): pointer1 to employee
address a + 1 ( 0x97a000c): pointer2 to employee
Run Code Online (Sandbox Code Playgroud)
旁注:你delete[]在数组上使用,所以你可以删除上面的delete[] a BUT,你必须首先遍历所有条目,如果你已经为它们分配了内存,所以必须在松开指针之前释放它.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |