帮我用C写一个结构体内成员全部是指针的判空逻辑
时间: 2024-09-18 20:16:13 浏览: 22
在C语言中,如果你有一个结构体,其中所有成员都是指针,你可以创建一个函数来检查每个指针是否为空。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个包含指针的结构体
typedef struct {
int* ptr_int;
char* ptr_char;
} PointerStruct;
// 判断结构体成员是否为空的辅助函数
void check_null(PointerStruct* ps) {
if (ps->ptr_int == NULL) {
printf("Int pointer is NULL\n");
} else {
printf("Int pointer is not NULL\n");
}
if (ps->ptr_char == NULL) {
printf("Char pointer is NULL\n");
} else {
printf("Char pointer is not NULL\n");
}
}
int main() {
// 创建一个PointerStruct实例并初始化指针
PointerStruct my_struct = {malloc(sizeof(int)), malloc(sizeof(char))};
// 检查结构体成员
check_null(&my_struct);
// 如果不再需要内存,记得释放
free(my_struct.ptr_int);
free(my_struct.ptr_char);
return 0;
}
```
在这个例子中,`check_null` 函数接收一个 `PointerStruct` 类型的指针,并检查其 `ptr_int` 和 `ptr_char` 成员是否为 `NULL`。如果成员是 `NULL`,则会打印相应的提示。