【发布时间】:2015-03-25 11:35:03
【问题描述】:
为这个非常糟糕的问题道歉 - 我真的不知道如何措辞。 我正在执行一段代码,我正在尝试使用动态数组。在这一行是段错误:
void myFunction(....) {
// other code up here
Stack *s = stack_new(); //segfault here
}
我的结构的相关头文件是:
typedef struct {
void **A;
int size;
int top; // the index of the current top of the stack
} Stack;
函数stack_new()是:
Stack
*stack_new() {
Stack *s;
s->size = 1;
s->top = -1;
s->A = (void **)malloc(s->size);
return s;
}
我想我已经包含了所有相关的内容,但是如果您需要更多代码,请告诉我。
我认为问题出在我使用 malloc 的方式上,但在网上进行了搜索并尝试了一些不同的选项,但仍然出现段错误。有人能提供一些见解吗?
谢谢大家
【问题讨论】:
-
不要投你的
malloc。 -
你在
stack_new()中为s分配内存在哪里? -
还有一个链接为什么你不应该投
malloc返回值:stackoverflow.com/questions/605845/… -
@BlueMoon:
s是自动分配的。但是,*s不是。