Структура, подобная следующей, работает нормально, я могу использовать t после вызова malloc (sizeof (mystruct)) :
struct mystruct {
MyDef *t[5];
};
Я хочу иметь возможность динамически устанавливать длину массива MyDef , например:
struct mystruct {
MyDef **t;
int size;
};
Что мне нужно сделать дополнительно к malloc (sizeof (mystruct)) , чтобы заставить это работать, чтобы я мог сделать TestStruct-> t [3] = что-то ? Просто получаю ошибку сегментации!
Спасибо!
РЕДАКТИРОВАТЬ с кодом, который вызывает ошибку сегмента, если только я не слепой, похоже, что ответы пока таковы:
#include <stdio.h>
typedef struct mydef {
int t;
int y;
int k;
} MyDef;
typedef struct mystruct {
MyDef **t;
int size;
} MyStruct;
int main(){
MyStruct *m;
if (m = (MyStruct *)malloc(sizeof(MyStruct)) == NULL)
return 0;
m->size = 11; //seg fault
if (m->t = malloc(m->size * sizeof(*m->t)) == NULL)
return 0;
return 0;
}