首页 > 解决方案 > 在另一个结构中初始化结构数组

问题描述

我是 C 的初学者,我试图一次使用另一个结构中的结构数组进行多次分配。

这是我正在尝试做的一个例子:

#include <stdio.h>
#include <stdlib.h>

// #define NULL ((void*)0)

typedef struct A{
  int a;
}A;

typedef struct B{
  A *arrayA[10]; //tableau de cellules
  struct B *anotherB;
}B;


int main(int argc, char const *argv[]) {
  B *myB;
  myB=(B*)malloc(sizeof(B)); //generating B

  for (size_t i = 0; i < 10; i++) {
    A *myA;
    myA = myB->arrayA[i];

    if(myA == NULL){
      printf("NULL\n");
    } else {
      printf("val : %d\n",myA->a);
    }

  }
  return 0;
}

数组中的所有内容是如何A初始化的?B

似乎所有的A都是NULL。如何将它们全部初始化为不为 NULL?

另外,我做多重分配对吗?

标签: cstruct

解决方案


推荐阅读