小编And*_*ani的帖子

使用函数初始化struct

这是在我的main.c

int main(){

int size = 5;
Path Solution;
PathInit(&Solution,size);
printf("Size: %d\n",Solution.size);
printf("top: %d", Solution.top);
}
Run Code Online (Sandbox Code Playgroud)

这是我的path.h

typedef struct{
int size;
int top;
int *item;
}Path;
Run Code Online (Sandbox Code Playgroud)

这是我的路径

void PathInit(Path *P, int vsize){
P = (Path *)malloc(sizeof(Path));
P->size = vsize;
P->item = (int *)malloc(sizeof(int)*vsize);
P->top = -1;
Run Code Online (Sandbox Code Playgroud)

}

预期的产出是

Size: 5
top: -1
Run Code Online (Sandbox Code Playgroud)

然而,输出是符合的

Size: 3412832
top: 0
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我的结构没有正确初始化.这也不是我的完整代码,但我已将问题缩小到这些部分.任何帮助都会很棒.谢谢

c struct initialization

0
推荐指数
1
解决办法
47
查看次数

结构标签与花括号后面的内容有什么区别?

有人可以为我解释这段代码吗?

typedef char AirportCode[4];

typedef struct NodeTag{
  AirportCode Airport;
  struct NodeTag *link;
}Node;

Node *L;
Run Code Online (Sandbox Code Playgroud)

这是我的数据结构类的代码片段.实现这段代码是为了在链表节点中保存数据.我想要了解的是NodeTag通常用于什么?是否希望结构在其内部保持另一个迭代,因为缺少更好的单词?NodeTag与大括号之后的内容有什么区别,在本例中为"Node"?

c struct typedef

0
推荐指数
1
解决办法
231
查看次数

标签 统计

c ×2

struct ×2

initialization ×1

typedef ×1