考慮下面的結構和功能:Segmenation故障(核心轉儲)在下面的代碼
typedef struct VectorT
{
NodeT **list;
int capacity;
int size;
} VectorT;
VectorT* newVector(int capacity)
{
struct VectorT *vector;
*vector->list = (NodeT*) malloc(capacity * sizeof(NodeT));
vector->capacity = capacity;
vector->size = 0;
return vector;
}
請解釋爲什麼我得到一個分段錯誤,當函數被調用。
經過對這個函數和另一個函數的一些試驗和錯誤之後,我相信它與我如何訪問「**列表」有關。我可以評論與**列表有關的區域,它似乎工作正常。
因爲那個'vector'永遠不會被初始化爲任何東西。因此段錯誤。 – 2015-02-23 03:02:17
爲什麼人們堅持在評論框中提供答案?如果它不值得回答,它可能只是被刪除。正如Yoda所說的,「回答,或者回答不是,沒有嘗試」:-) – paxdiablo 2015-02-23 03:05:04
我傾向於在回答很明顯或容易的時候發表評論。國際海事組織,這個問題應該可能只是刪除,是的。或者以「簡單的印刷錯誤」或其他方式關閉。此外,提供一個答案,不會得到upvotes或接受(通常情況下,與可怕的問題+新用戶的組合)殺死我的代表每個答案比率;) – 2015-02-23 03:13:39