struct aad *st
时间: 2023-08-22 20:05:41 浏览: 48
这是一个指向结构体类型为aad的指针变量st。可以通过该指针变量来访问和操作结构体类型为aad的变量或者数组。例如,可以通过st->member来访问结构体中的成员变量,或者通过st[i].member来访问结构体数组中的成员变量。需要注意的是,在使用该指针变量之前,需要先分配内存并初始化该结构体或者结构体数组。
相关问题
struct aad *st怎么分配内存
可以使用标准的C语言函数malloc()来分配内存。假设结构体类型为aad的定义如下:
```
struct aad {
int member1;
char member2;
float member3;
};
```
则可以使用以下代码来分配一个结构体类型为aad的变量,并将其地址赋值给指针变量st:
```
struct aad *st;
st = (struct aad *)malloc(sizeof(struct aad));
```
这里的sizeof(struct aad)表示结构体类型为aad的大小,malloc()函数会分配相应大小的内存,并返回该内存块的首地址。需要注意的是,在使用完该内存块后,需要使用free()函数来释放该内存块,以避免内存泄漏。
struct node*和struct node**的区别
`struct node*` 和 `struct node**` 都是 C 语言中的指针类型,但它们之间有很大的区别。
`struct node*` 表示指向 `struct node` 结构体的指针。这意味着变量存储了一个地址,该地址指向一个 `struct node` 结构体的实例。通过 `struct node*` 可以访问结构体中的成员变量,例如 `node_ptr->member` 的形式。
`struct node**` 则表示指向 `struct node*` 指针的指针。这种情况通常用于动态分配内存,例如创建一个指向 `struct node` 的指针数组。在这种情况下,每个元素都是指向 `struct node` 的指针,而 `struct node**` 存储了这个指针数组的地址。
总之,`struct node*` 用于指向结构体的单个实例,而 `struct node**` 用于指向指针数组的指针。