Я хочу динамический массив строк, поэтому указатели на указатели массива. Это мой код (моя программа падает после печати):Mallocing двухмерный массив, сбой после попытки печати строк
typedef struct person{
char *name;
char **children;
struct person *nextPerson;
}Person;
int main(){
int kidsNum = 1;
int i;
Person *first = (Person*)malloc(sizeof(Person));
first->name = "George";
first->children = malloc(kidsNum * sizeof(char*));
for (i = 0; i < kidsNum; i++){
//every string consists maximum of 80 characters
(first->children)[i] = malloc((80+1) * sizeof(char));
scanf("%s",((first->children)[i]));
printf("%s",(*((first->children))[i]));
}
}
Он выходит из строя после Printf, я не знаю, если он выходит из строя из-за плохой mallocing, или я не знаю, как печатать строки правильно в сценарии.
аргументов зсапЕ & Printf должен быть одинаковым для печати полукокса массивов/ –
'Е ("% S", (* ((первого> детей)) [i])); '->' printf ("% s \ n", first-> children [i]); ' – BLUEPIXY
скомпилировать с включенными предупреждениями –