我遇到了细分错误。这真的很基本,但我不知道如何。
据我了解,这就是我在做什么:
我制作了一个名为node的结构。一个节点具有两个值:字符串WORD和指针NEXT。
我做了一个表,它是两个节点的数组。
node1的值WORD等于“目标”。 node2的值WORD等于“ Jonas”。
我试图打印两个节点的值WORD。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
typedef struct node
{
char word[50];
struct node *next;
} node;
node *table[2];
strcpy(table[0]->word, "Goal");
strcpy(table[1]->word, "Jonas");
printf("%s\n", table[0]->word);
printf("%s\n", table[1]->word);
}
在我看来,这就是我想要做的:
表:
________________
| | |
| "Goal" | NULL | -> this is node1
|________|______|
| | |
|"Jonas" | NULL | -> this is node2
|________|______|
最佳答案
我有两种正确的方法:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
typedef struct node
{
char word[50];
struct node *next;
} node;
node table[2];
strcpy(table[0].word, "Goal");
strcpy(table[1].word, "Jonas");
printf("%s\n", table[0].word);
printf("%s\n", table[1].word);
}
或使用malloc():
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(void)
{
typedef struct node
{
char word[50];
struct node *next;
} node;
node *table[2];
table[0] = malloc(sizeof *table[0]);
table[1] = malloc(sizeof *table[0]);
table[0]->next = NULL;
table[1]->next = NULL;
strcpy(table[0]->word, "Goal");
strcpy(table[1]->word, "Jonas");
printf("%s\n", table[0]->word);
printf("%s\n", table[1]->word);
free(table[0]);
free(table[1]);
}
关于c - 我有一个节点的哈希表。如何在哈希表中打印每个节点的每个值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53634834/