gpt4 book ai didi

c - 使用结构的节点

转载 作者:太空宇宙 更新时间:2023-11-04 00:31:55 25 4
gpt4 key购买 nike

typedef struct{

int key;
int priority;
}array_node;


array_node *newNode(int key, int priority) {

array_node *g;
g = (array_node *)calloc(1,sizeof(array_node));

if (NULL==g) {
fprintf(stderr, "Out of mem!\n");
return (NULL);
}

g->key=key;
g->priority=priority;
return g;
}

int main(){

array_node *newNode;
newNode->key = 5;
newNode->priority = 1000;

printf("%d\n",newNode->key);
}

大家好!我需要深入了解为什么每次编译程序时都会出现段错误。看起来一切都很好,但我不知道错误来自哪里。

我只是在实现一个节点结构。

最佳答案

试试这个

// use these headers
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
int key;
int priority;
}array_node;

array_node *newNode(int key, int priority) {

// sizeof(array_node), not sizeof(array_node) == sizeof(void*) == 4 or 8 typically
array_node *g = malloc(sizeof(array_node));

if (NULL==g) {
fprintf(stderr, "Out of mem!\n");
return (NULL);
}

g->key=key;
g->priority=priority;
return g;
}

int main(){
/// call the function, not just type its name
array_node* n = newNode(5, 1000);

printf("Key = %d, Priority = %d\n", n->key, n->priority);

return 0;
}

注意右括号,它不是 Python,它是 C。printf() 不会为您考虑。它只会打印 n 的地址。

关于c - 使用结构的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11565361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com