gpt4 book ai didi

c - 结构段错误 : 11. 无法重新分配首先初始化为 null 的结构中的值

转载 作者:行者123 更新时间:2023-11-30 16:38:01 25 4
gpt4 key购买 nike

我对使用struct非常陌生,因此我将要显示的一些代码可能不正确,这可能是我收到错误的原因。我正在编写代码,尝试使用 struct 来模拟堆栈。我目前正在尝试创建一个 pushInt() 函数,该函数接受指向堆栈 struct 的指针和一些 int 值。这是我的 puchInt() 函数的代码:

    Stack *pushInt(Stack *stack, int value)
{
stack->intTop = TRUE;
stack->data.intValue = value;
stack->next = NULL;

return stack;
} // end pushInt

这是我用来定义 stact struct 的代码。它是一个自引用结构,其作用类似于 likedList:

    struct StackNode
{
int intTop;

union {
int intValue;
char stringValue[MAX_STRING_LENGTH];
} data;

struct StackNode *next;
};

这是我运行来测试代码功能的主要函数:

    int main()
{
Stack *theStack = NULL;

//getInteger function just gets user input
int pushValue = getInteger("value to push onto stack: ");
theStack = pushInt(theStack, pushValue);
}

最佳答案

theStack = PushInt(theStack, PushValue);

此处传递 NULL 指针(用 NULL 初始化的堆栈)。因此它变成取消引用pushInt函数内的NULL指针,从而导致seg错误。

您需要为变量 theStack 分配内存

关于c - 结构段错误 : 11. 无法重新分配首先初始化为 null 的结构中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624857/

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