双重间接

Double indirection

问题如下。 我有一个结构:

typedef unsigned int nat;

struct intervalo_t{
    nat fin;
    nat inicio;
};

我完成了以下操作(其中 inter 是一个大小为 n 的动态数组,其中加载的元素类型为 intervalo_t):

intervalo_t** aux=new intervalo_t*[n];
for (nat i=0; i<n; i++){
    aux[i]=inter[i];
}

我现在要做的是显示inter[i].fin的内容,但是我只有aux[i]的访问权限。如果它们是原始类型(例如 int),我会做类似 printf("%d", **aux) 的事情,就是这样。有没有一种方法可以做类似的事情,但使用上面定义的结构?

inter[i]intervalo_t* 类型,因此您可以使用 (*inter[i]).fininter[i]->finaux[i] 同样也是 intervalo_t*.