使用箭头表示法访问结构元素有问题

问题描述 投票:0回答:1

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

#include <stdio.h>

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

main(){
    Node *v;
    printf("%s\n",v->a);
}
c structure
1个回答
0
投票

您的代码中有多个错误:

  • 您不能为类型定义中的成员提供值。
  • 你有多个同名的结构成员
  • 你取消引用一个未初始化的指针。
  • 您也不提供已弃用的
    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);
}
© www.soinside.com 2019 - 2024. All rights reserved.