我在一本书中遇到了这个声明。声明新员工声明是什么意思* [编号] C++
new employee *[num];
那里的员工已经被宣布为员工结构和 NUM是一个int;
这是在语句的=操作符的右侧。
那么,这个陈述是什么意思? 该书不提供任何关于上述声明的解释。
我在一本书中遇到了这个声明。声明新员工声明是什么意思* [编号] C++
new employee *[num];
那里的员工已经被宣布为员工结构和 NUM是一个int;
这是在语句的=操作符的右侧。
那么,这个陈述是什么意思? 该书不提供任何关于上述声明的解释。
这将分配一个所需的内存,以在免费商店中容纳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(未雇员)的动态数组分配内存。它是一样简单的,
int * aip = new int[10];
TEmployee本身是一个指向员工的指针类型。
这是一个非常好的解释!谢谢。 –
它分配一个大小为num的新员工*数组。返回值从未被捕获。 – Ben
IMO这是一个为什么*应该与其余类型一起使用的例子。 – Ben
这是为'员工'创建一个'num'指针的数组。 – haccks