如何从结构中的结构中打印出某些内容。我想打印出“30美元”。我得到了分段错误。
typedef struct {
int cost;
} prod_t;
typedef struct {
prod_t *c;
} a_t;
int
main(int agrc, char **argv){
a_t *storage = NULL;
char buffer[1000];
storage->c->cost = 30;
sprintf(buffer, "$%d", storage->c->cost);
printf("%6s\n",buffer);
return 0;
}
答案 0 :(得分:1)
a_t *storage = NULL;
对于所有指针,您需要分配内存。取消引用未初始化的/ NULL指针会导致未定义的行为。
a_t *storage = malloc(sizeof(a_t));
a_t->c = malloc(sizeof(prod_t));