[英]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.