【发布时间】:2016-08-25 03:56:02
【问题描述】:
我正在学习 c 中的结构指针,并且我已经编写了这段代码用于学习:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
int id;
char *name;
}struct_type_t;
void set_struct(struct_type_t **);
int main(int argc, char *argv[])
{
struct_type_t *m = NULL;
set_struct(&m);
printf("%d\n", m->id);
//fflush(stdout);
printf("%s\n", m->name);
return 0;
}
void set_struct(struct_type_t **m)
{
struct_type_t t;
*m = &t;
(*m)->id = 5;
(*m)->name = "Pointer To Structure";
}
函数set_struct的意思是通过将指向结构struct_type *m的指针的地址传递给函数来设置结构成员。
但是在 main 函数的 printf 行中,它不是打印结构的字符串成员name,而是只打印整数成员id。
我用过 fflush to,但还是不行。
请帮我更正这段代码并检查有什么问题......
【问题讨论】:
标签: c string pointers structure c-strings