我在同一個項目但一個稍微不同的typedef工作作爲本question,:總線錯誤使用C函數strncpy
typedef struct {
char* word;
int index;
} data_t;
typedef struct node node_t;
typedef node {
void *data;
node_t *left;
node_t *right;
}
我試圖將一個字符串分解成單個的詞,它堅持到data_t結構,然後將其插入到二叉搜索樹中。這個想法是,當在輸入字符串中循環時,當發現字符是標記字的結尾的字符時,字的開始和結束之間的字符數被複制到字符串中,試圖用做:
strncpy(newstring, (in+wordstart), (i-wordstart));
其中:
char* newstring, in;
int i, wordstart;
然而,GCC提供了一個總線錯誤時特定的行被調用。如何解決這種總線錯誤並保留當前的解決方案,或者尋找其他解決方案會更明智一些?
到目前爲止我唯一能想到的想法是,一次一個字符,將字符放入字符串中,直到達到單詞的末尾。
你需要發佈更多的代碼。 –
你如何爲所有這些字符串分配內存? – Mat
'char * newstring,in'只是指向一些隨機存儲器的指針。你需要讓它們指向一些有效的內存,屬於該進程的內存。 – alk