C++中新员工*[num]的陈述是什么意思

Mas*_*ief 0 c++ arrays pointers new-operator

我在一本书中看到了这个陈述.

new employee *[num];
Run Code Online (Sandbox Code Playgroud)

employee已经被声明为struct employee而num是一个int;

这是声明中=运算符的右侧.

那么,这个陈述是什么意思?该书没有对上述陈述作出任何解释.

4pi*_*ie0 7

这将分配一个内存,以保持免费存储上的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,你必须首先遍历所有条目,如果你已经为它们分配了内存,所以必须在松开指针之前释放它.

/sf/answers/943405011/