LINUX.ORG.RU

что не так в использовании структуры


0

0

#include <stdio.h> #include <stdlib.h> #include <math.h>

typedef struct _basis{ int N,powN; }basis;

int main(int argc,char **argv) { int N; if(argc!=2) { printf("\nUsing: struct [number]\n"); exit(1); } N=atoi(argv[1]); printf("\nNumber N is %i",N);

basis *b; b->N=N; return 0; } при попытки инициализировать член структуры вываливается по сегфолту.

anonymous

>basis *b; b->N=N;

А память под b выделять дядя вася будет?

redgremlin ★★★★★
()

>> basis *b;

basis *b = malloc(sizeof(*b));

И не забудьте проверить что память действительно выделилась (NULL != b). А так же потом перед завершением программы освободите её обратно (free(b)).

Deleted
()

Не слушай их, не надо кучу трогать ради нескольких байт. Структуру эту и в стеке можно выделить, например:

basis b; b.N=N;

или

basis *b = alloca( sizeof( basis ) ); b->N=N;

temp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.