C如何将一个结构体置0
时间: 2023-06-13 13:02:05 浏览: 319
可以使用`memset()`函数将结构体中的所有成员变量置0。例如,假设我们有以下结构体 `Person`:
```c
typedef struct {
char name[20];
int age;
float height;
} Person;
```
我们可以使用以下代码将其置0:
```c
Person p;
memset(&p, 0, sizeof(p));
```
这里的第一个参数是指向结构体变量的指针,第二个参数是用来填充结构体的值,第三个参数是结构体的大小。这样就可以将结构体中的所有成员变量都置0了。
相关问题
C语言中怎么将结构体数组全部置0
可以使用`memset`函数将结构体数组全部置0。具体实现可以使用以下代码:
```
#include <stdio.h>
#include <string.h>
struct Student {
char name[20];
int age;
};
int main() {
struct Student students[10];
memset(students, 0, sizeof(students));
return 0;
}
```
在上面的代码中,使用`memset`函数将`students`数组全部置0,其中第一个参数是要置0的数组指针,第二个参数是要置0的值,第三个参数是要置0的数组大小。由于结构体数组`students`有10个元素,每个元素的大小是`sizeof(struct Student)`,因此需要将数组大小设置为`sizeof(students)`。
将结构体数组全部置0
你可以使用`memset`函数将结构体数组全部置0。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
int id;
char name[20];
} Student;
int main() {
Student students[10];
// 将结构体数组全部置0
memset(students, 0, sizeof(students));
// 输出置0后的结果
for (int i = 0; i < 10; i++) {
printf("Student %d: id = %d, name = %s\n", i+1, students[i].id, students[i].name);
}
return 0;
}
```
上述代码定义了一个学生结构体`Student`,包含学生的ID和名称。在`main`函数中,创建了一个包含10个学生的结构体数组`students`。通过调用`memset`函数,将整个结构体数组的内存内容置为0。然后使用循环输出每个学生的ID和名称,可以看到它们都被置为了0或空字符串。