我是在一本书上看到这句话的。
new employee *[num];
中employee已经被声明为struct employeenum是整型;
在语句=操作符的右边
那么,这句话是什么意思?
这将为自由存储区中num
个指向employee
的指针分配所需的内存。
例句:
employee** a = new employee* [2]; // 2 pointers on the heap
堆:
address a (e.g. 0x97a0008): pointer1 to employee
address a + 1 ( 0x97a000c): pointer2 to employee
旁注:你在数组上使用delete[]
,所以你可以用delete[] a
删除上面的内容,但是你必须首先循环所有条目,如果你已经为它们分配了内存,所以它必须在你释放指针之前被释放。
我想是这样的,
typedef employee* TEmployee;
TEmployee * ap = new TEmployee[10];
因此,它为大小为10的动态数组分配内存,类型为TEmployee(不是employee)。就这么简单,
int * aip = new int[10];
TEmployee本身是一个指向employee的指针类型。