这是我的代码
void StackInit(Stack* s, int dim){
s = (Stack *) malloc(sizeof(Stack)); //THIS IS THE SEGMENTATION FAULT CAUSE
s->data = (Elem *) malloc(sizeof(Elem)*dim);
s->num_elem=0;
s->dim=dim;
...
}
如果在函数StackInit中运行,malloc()会导致“分段错误”。我试图在main.c中分配内存,而不是在StackInit函数中使用malloc。
int main(){
Stack* s = (Stack *) malloc(sizeof(Stack));
StackInit(s, 5); //WITHOUT FIRST MALLOC INSIDE
...
}
建议?