这是在我的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)
有人可以解释为什么我的结构没有正确初始化.这也不是我的完整代码,但我已将问题缩小到这些部分.任何帮助都会很棒.谢谢
有人可以为我解释这段代码吗?
typedef char AirportCode[4];
typedef struct NodeTag{
AirportCode Airport;
struct NodeTag *link;
}Node;
Node *L;
Run Code Online (Sandbox Code Playgroud)
这是我的数据结构类的代码片段.实现这段代码是为了在链表节点中保存数据.我想要了解的是NodeTag通常用于什么?是否希望结构在其内部保持另一个迭代,因为缺少更好的单词?NodeTag与大括号之后的内容有什么区别,在本例中为"Node"?