c语言结构体二维
时间: 2023-07-09 13:10:06 浏览: 97
《C语言与数据结构》-c语言中的结构体
C语言中可以使用结构体数组来实现二维结构体。
定义一个二维结构体数组的方法如下:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体
struct student {
char name[20];
int age;
};
int main() {
int rows = 2; // 行数
int cols = 3; // 列数
// 动态分配二维结构体数组
struct student **stu = (struct student **)malloc(rows * sizeof(struct student *));
for (int i = 0; i < rows; i++) {
stu[i] = (struct student *)malloc(cols * sizeof(struct student));
}
// 给二维结构体数组赋值
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
sprintf(stu[i][j].name, "Student_%d_%d", i, j);
stu[i][j].age = i * 10 + j;
}
}
// 输出二维结构体数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("Name: %s, Age: %d\n", stu[i][j].name, stu[i][j].age);
}
}
// 释放动态分配的内存
for (int i = 0; i < rows; i++) {
free(stu[i]);
}
free(stu);
return 0;
}
```
以上示例代码通过动态分配二维结构体数组,并给数组元素赋值,最终输出结果。需要注意的是,在使用完二维结构体数组后,需要手动释放动态分配的内存。
阅读全文