如果這是一個易於修復的問題,我真的很抱歉,但我是一個初學者。 我有一個任務將一些函數寫入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