我只是C
从解释语言背景开始,我在理解为什么这不起作用时遇到了问题。
我有一个Dynamic_Array
结构(http://pastebin.com/h4k7Sk3U)和一个Task
结构(http://pastebin.com/evs4TEQA)。
创建Dynamic_Array
具有初始大小的实例时,我得到:
“./ctask ” terminated by signal SIGSEGV (Address boundary error)
我跟踪了错误gdb
,谁表明它起源于dynamic_array.h:16
:
Dynamic_Array *dynamic_array_create(size_t initialSize) {
Dynamic_Array *a;
a->array = (Task *)malloc(initialSize * sizeof(Task)); // line 16
a->used = 0;
a->size = initialSize;
return a;
}
我在那里做错了什么?我将初始大小与Task
结构的大小相乘,这对他们来说应该是足够的内存。