C-如果在函数中使用malloc,则会发生“分段错误”

时间:2019-12-06 20:14:22

标签: c malloc

这是我的代码

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
  ...
}

建议?

0 个答案:

没有答案