gpt4 book ai didi

c - 无法将堆栈大小初始化为 0

转载 作者:行者123 更新时间:2023-11-30 15:04:50 25 4
gpt4 key购买 nike

我对使用堆栈有点生疏,所以这里可能有一些明显的错误。当我尝试将堆栈大小设置为 0 时,我要么遇到段错误,要么当第一个 if 语句执行时,我的推送函数中出现段错误。下面的代码将在push函数的第一行出现段错误。

typedef strcut Stack{
Node data[UNIT_MAX];
int size;
} Stack;

//
Stack* DFS(Node* G, int numbVertices, Node v){
//...More code above
Stack* S = NULL;

//Segfaulting when I try to set S->size = 0!!!

push(S,v);


}

//
void push(Stack* S, Node d){
if(S->size < UNIT_MAX){
S->data[S->size++] = d;
}
else
exit(STACK_FULL);
}

最佳答案

Stack* S = NULL;

//Segfaulting when I try to set S->size = 0!!!

当然你的程序会崩溃,因为你将 S 设置为 NULL。

(Stack*)(NULL)->size = 0。肯定会崩溃,因为你访问的是NULL地址。

关于c - 无法将堆栈大小初始化为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121368/

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