如何在 C 中创建和读取数据类型的动态数组?



我正在尝试操作名为 car 的类型的动态数组,但我不断收到"分段错误"或"不兼容类型"错误。

我已经尝试了"*"和"&"的所有组合,但似乎没有任何效果。

结构类型定义为:

struct car{
unsigned int id;
char *name;
};

然后在main.c中创建它:

struct car *testing;

我正在尝试使用另一个名为void init_cars的函数引入以前创建的数组(cars(中的数据:

void init_cars(struct car *array[]){
int i;
array = malloc (SIZE * sizeof(struct car));
for(i=0; i<SIZE;i++){
array[i]->id=cars[i].id;
array[i]->name=cars[i].name;
}
该函数应该将汽车">

汽车"数组复制到新的动态数组"测试"中,另一个函数应该能够读取"测试"的数据,但是我在执行malloc或加载数据时出现分段错误。

void init_cars(struct car **array){
int i;
*array = malloc (SIZE * sizeof(struct car));
for(i=0; i<SIZE;i++){
(*array)[i].id=cars[i].id;
(*array)[i].name=cars[i].name;
}

由于您正在传递struct car **因此您需要在分配时取消引用它两次。

您可以从main致电如下。

struct car *testing;
init_cars(&testing);

相关内容

  • 没有找到相关文章