如果这是一个易于修复的问题,我真的很抱歉,但我是一个初学者。 我有一个任务将一些函数写入stack-struct。结构被给出了。我不能摆脱push()行“s->元素中的分段错误...” 我不知道什么是错误的小时后搜索和搜索。C - 结构化分段错误
下面的代码:
#define STACK_SIZE 5
#include <stdio.h>
#include <stdlib.h>
typedef struct stackADT {
int elements[STACK_SIZE];
int count;
} stack;
void initialize(stack *s)
{
stack *newStack;
newStack = malloc(sizeof(*newStack));
newStack->count = 0;
s = newStack;
}
int push(stack *s, int value)
{
if(s->count == 5) return -1;
else {
s->elements[s->count++] = value;
return s->elements[s->count-1];
}
}
int main()
{
stack* sA;
stack* sB;
initialize(sA);
initialize(sB);
printf("%d\n",push(sA,3));
return 0;
}
@Mirko Richter为什么你动态地分配一个栈类型的对象?你可以简单地定义一个像堆栈sA的堆栈;还有函数初始化什么都没有。:) – 2015-03-31 18:34:10
好的。我怎样才能改变函数初始化初始化?;) – mikefedi 2015-03-31 18:37:58