C语言 使用箭头表示法访问结构元素时遇到问题

gk7wooem  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(163)

我想打印字符串“HelloWorld”在输出使用箭头符号.但它不是预期的工作,可以有人请指出在此代码中的错误,并帮助我解决这个问题.

#include <stdio.h>

typedef struct Node {
    int a ;
    char a[100]="HelloWorld";
}Node;

main(){
    Node *v;
    printf("%s\n",v->a);
}

编辑:我已经找到了我代码中的错误,并理解了我困惑的地方,感谢大家的帮助。

#include <stdio.h> 
#include <string.h>  
struct Node {         
int a ;         
char b[100];        
};                          
void main()         
{                   
struct Node tester;            
struct Node* i = &tester;           
strcpy(tester.b,"HelloWorld");            
printf("%s\n",i->b);        
}
7gs2gvoe

7gs2gvoe1#

您的代码中有多个错误:

  • 不能为类型定义中的成员提供值。
  • 您有多个同名的结构成员
  • 解引用一个未初始化的指针。
  • 你也没有为main提供返回类型,这是不推荐的。

这看起来好像你试图通过尝试和错误来学习C,这永远不会有好结果。
您的代码段需要进行如下更改:

#include <stdio.h>

typedef struct Node {
    int value;
    char text[100];
} Node;

int main(void)
{
    Node *v = malloc(sizeof(*v));
    if (v == NULL)
    {
      perror("Cannot allocate memory");
      exit(1);
    }
    v->value = 123;
    strcpy(v->text, "Hello World");
    printf("%s\n",v->text);
}

相关问题