-1
ниже - моя программа c дает мне ошибку сегментации, я не знаю почему. Дальнейший sizeof (struct node1 *) дает ответ 4, а sizeof (struct node1) дает 12. пожалуйста, объясните мне.ошибка сегментации в указателе структуры i c
#include<stdio.h>
#include<malloc.h>
struct node{
int i;
int j;
};
struct node1{
int *a;
int *b;
struct node *n;
};
int main()
{
struct node1 *nn;
nn=(struct node1 *)malloc(sizeof(struct node1));
nn->n->i=5;
printf("\nsize is %d -- %p -- %p %d\n",sizeof (struct node1*),*nn,nn,nn->n->i);
return 0;
}
Вы не выделили 'NN-> n'. – juanchopanza
после выделения Я получил ответ: размер 4 - (ноль) - (ноль) 138850328 !! –
Да ... 'printf' не знает, как напечатать' struct ', но вы передаете его один и указав, что это указатель. Лучше прочитайте вступительную книгу C или попробуйте сначала несколько простых примеров. – juanchopanza