c-分段错误:11,带指针



一个我无法解决的问题。。。

调用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不在那里(你试图访问nothing并获得segfault)。

你必须首先分配内存:

col_dates *cd = malloc(sizeof(col_dates));
// access cd and return it

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

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

不要忘记free,指针在您不再需要它之后返回。

相关内容

  • 没有找到相关文章

最新更新