work为父类,work**二级指针怎么理解
时间: 2023-07-23 14:39:54 浏览: 41
首先,`work`是一个父类,也就是一个基类。那么`work**`就是一个指向指针的指针,也可以理解为一个二级指针。
在使用二级指针时,我们需要先定义一个指向指针的指针变量,然后再使用`new`或`malloc`动态分配内存,最后将这个指针变量的值指向新分配的内存地址。
举个例子,假设我们有一个名为`work`的类,我们可以这样定义一个`work**`类型的指针变量:
```
work** ptr;
```
然后,我们可以使用`new`来动态分配内存:
```
ptr = new work*[5];
```
这会分配一个包含5个`work*`类型指针的数组,并将`ptr`指向这个数组的首地址。
最后,我们可以通过`ptr`来访问这个数组中的元素,比如:
```
ptr[0] = new work();
```
这会创建一个新的`work`对象,并将`ptr[0]`指向这个对象的地址。
当然,使用完二级指针后,我们也需要释放内存:
```
for (int i = 0; i < 5; i++) {
delete ptr[i];
}
delete[] ptr;
```
相关问题
为什么work**定义的是数组
我不确定你所提到的 "work**" 是指什么,但是一般情况下,我们会将一组相关的数据放在一个结构体或数组中来进行操作和处理。使用数组的好处是可以方便地对数据进行遍历、排序、查找等操作,同时也能够有效地节省内存空间。此外,数组还可以作为函数参数传递,方便数据的传递和处理。但是,数组的缺点是其大小是固定的,无法动态地改变其大小,因此在使用时需要考虑数组容量是否足够。
我前面有提到work**是什么
非常抱歉,我没有看到你之前提到了 "work**"。如果我理解正确的话,"work**"可能是一个指向指针的指针,通常用于动态分配二维数组。在C语言中,我们可以使用指针数组来表示一维数组,但是如何表示二维数组呢?这时候我们可以使用指向指针的指针来实现。对于一个二维数组,我们可以将其看成是一个一维数组,其中每个元素又是一个一维数组。因此,我们可以定义一个指针数组,其中每个元素都是一个指向一维数组的指针,这样就可以实现二维数组的访问和操作了。