c - 在结构体数组内分配结构体数组

标签 c malloc

如何使用 ma​​lloc 以及结构数组内的结构数组和结构数组进行分配?

例如:

struct car_t{
int price;
float kmsDriven;
};

struct garage_t{
int locationX;
int locationY;
struct car_t * car;
}

有一系列车库,每个车库都有一系列汽车。

最佳答案

您必须使用循环:

#define N 42
#define M 17

struct garage_t *a = malloc(sizeof *a  * N);

for (int i = 0; i < N; i++) {
    a[i].car = malloc(sizeof (*a[i].car) * M);
}

关于c - 在结构体数组内分配结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34099649/

相关文章:

c - 从具有 undefined reference 的源 (Ubuntu) 构建 OpenSSL 和 LibCURL

自定义堆/内存分配范围

C语言中正确释放双链接节点

c - 从结构中分配和释放数组的内存

c - malloc 指针上的偶发段错误

c - 指针算术和 malloc()/calloc() 函数

c - 为什么在这种情况下会显示 printw?

c - 如何将代码的输出重定向到代码块中的 pdf 或文本文件?

c++ - 在 C++ 中存储和搜索短语的最佳数据结构

c - 我的 Fortran 编译器的中间代码生成 : DAG or quadruples