繁体   English   中英

分段错误:11,带指针

[英]Segmentation fault : 11, with pointers

我无法解决的问题...

调用 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 *));

不要忘记free不再需要的指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM