请问为什么主函数中没有memset那句话,直接报段错误
struct Stack {
int *data;
int capacity;
int top;
};
void init(struct Stack *p, int capacity) {
p->capacity = capacity;
p->data = (int *)malloc(capacity * sizeof(int));
}
int push(struct Stack *p, int x) {
if (is_full(p)) {
printf("isFullSeqstack!!!\n");
return -1;
}
p->data[p->top++] = x;
return 0;
}
int main() {
struct Stack h;
memset(&h, 0, sizeof(struct Stack));//没有居然报错
init(&h, 5);
push(&h, 1);
push(&h, 2);
}
不知道你这个问题是否已经解决, 如果还没有解决的话: