【发布时间】:2022-01-20 09:57:10
【问题描述】:
我是一名 Java 开发人员,我正在学习 C,我想打印一个 string,但它不起作用。我发现与 Java 相比,在 C 中打印 string 非常困难。
这是代码:
static struct t_node* create_tnode(char* n) {
// Assigning memory to struct variable temp
struct t_node *temp=(struct t_node * )malloc(sizeof(struct t_node ));
printf("name = %s\n", temp->name);
// Assigning value to name variable of temp using arrow operator
temp->name=n;
temp->next_dfile=NULL;
temp->next_file=NULL;
return temp;
}
打印此temp->name 不起作用,然后我尝试以这种方式打印*temp->name 或类似此&temp->name 并且不起作用。还有一个问题,这个结构是返回 temp var 还是指向 temp 的指针?提前谢谢!
【问题讨论】:
-
这个 printf 调用的输出是什么?
-
temp里面没有任何内容,您只是分配了它 - 您是否尝试在分配temp->name=n;之后执行printf? -
在将 n 分配给 temp->name 之后放置打印功能。它不会返回 temp 本身。它返回值(地址)临时指针所持有的内容。