作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我能在这里重新审视我的代码。我正在做一项任务,该任务是 Boggle 游戏的开始。基本前提是我们有一个包含 96 个字符的文本文件,我们的程序将分别读取这些字符并将它们作为节点添加到线性链表中,然后将每个项目复制到另一个线性链表中,该线性链表将放置每个骰子上有 6 个字符,总共 16 个骰子。我已经让大多数函数正常工作,除了下面的函数,它假设采用包含所有 96 个字符的线性链表(struct boggleDataNode)并将每个字符复制到第二个线性链表(struct boggleDieSideNode)。函数中的第三个参数假设是被复制的字符的索引。我在下面包含了我的主要功能,以便您可以查看实现。任何见解或指导将不胜感激,因为我目前迷路了!
void addBoggleDieSide(struct boggleDataNode *head1, struct boggleDieSideNode *head2, int index)
{
int i = 0;
struct boggleDieSideNode *temp = NULL;
struct boggleDieSideNode *right = NULL;
struct boggleDataNode *helper = NULL;
temp = (struct boggleDieSideNode *)malloc(sizeof(struct boggleDieSideNode));
helper = (struct boggleDataNode *)malloc(sizeof(struct boggleDataNode));
helper = head1;
for(i = 0; i <= index; i++)
{
helper = helper->nextData;
}
strcpy(temp->dieSideData, helper->data);
temp->nextSide = NULL;
if (head2 == NULL)
{
head2 = temp;
}
else
{
right = head2;
while(right->nextSide != NULL)
{
right = right->nextSide;
}
right->nextSide = temp;
}
return;
}
int main()
{
int counter = 0;
int i = 1;
struct boggleDataNode *head1 = NULL;
struct boggleDieSideNode *head2 = NULL;
// Reads in original text file to boggleDataNode linked list
read(&head1);
// Displays boggleDataNode linked list
displayDataFile(head1);
for(i = 1; i <= 16; i++)
{
// Clears die that was just created in loop and starts a new die
head2 = NULL;
for(i = 1; i <= 6; i++)
{
addBoggleDieSide(head1, head2, counter);
counter++;
}
// Displays values on each die
displayDieSide(head2);
}
return 0;
}
最佳答案
(head2 == NULL)
情况没有达到您的预期。 head2 = temp
仅设置 head2
的本地值。一旦函数返回,该值就会丢失。调用者的 head2
未设置,因此它将始终为 NULL。
你的函数应该传入一个指向头指针的指针。像这样的东西:
void addBoggleDieSide(struct boggleDataNode *head1, struct boggleDieSideNode **head2, int index)
{
...
if (*head2 == NULL)
{
*head2 = temp;
}
...
}
main()
{
...
addBoggleDieSide(head1, &head2, counter);
...
}
关于C 链表 - 令人惊叹的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31065506/
很抱歉新手的问题,但是: 我最近才发现“=”运算符不只是处理对象/等等。值(value),也是引用。这很酷,但我认为这对变量来说是不一样的,它不会在存储整数或 float 的变量之间创建引用。后来我觉
我是一名优秀的程序员,十分优秀!