-3 c pointers segmentation-fault
一个我无法解决的问题......
当我调用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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!:)
col_dates *cd;
是一个指向任何东西的指针.它没有任何内存指向,因此没有数据要指向.所以你不能这样做cd->data;
,因为data
不存在(你试图不访问任何东西并获得段错误).
你必须先分配内存:
col_dates *cd = malloc(sizeof(col_dates));
// access cd and return it
Run Code Online (Sandbox Code Playgroud)
分配后cd
,也分配cd->tab
:
cd->tab = malloc(size * sizeof(date *));
Run Code Online (Sandbox Code Playgroud)
free
在您不再需要它之后不要忘记返回的指针.
归档时间: |
|
查看次数: |
414 次 |
最近记录: |