gpt4 book ai didi

c - 带有指针的段错误 : 11,

转载 作者:行者123 更新时间:2023-11-30 20:45:55 26 4
gpt4 key购买 nike

我无法解决的问题...

当我调用 new_col() 函数时出现段错误。结构体可以,函数不行。

typedef struct {
int jour;
int mois;
int annee;
} date;

typedef struct {
date** tab;
int size;
} col_dates;

// Fonction B1.c
col_dates* new_col(int size) {

int i;
col_dates* cd;

for(i=0; i<size; i++) {

cd->tab[i] = NULL;

}

cd->size = i;

return cd;

}

谢谢! :)

最佳答案

col_dates *cd; 是一个不指向任何内容的指针。它没有任何可指向的内存,因此也没有数据可指向。因此,您不能只执行 cd->data;,因为 data 不存在(您试图访问任何内容 并出现段错误)。

您必须先分配内存:

col_dates *cd = malloc(sizeof(col_dates));

// access cd and return it

分配cd后,也分配cd->tab:

cd->tab = malloc(size * sizeof(date *));

不要忘记在不再需要时释放返回的指针。

关于c - 带有指针的段错误 : 11,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37182981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com