我已經宣佈在我的h文件的結構,因爲這樣的:分配值在結構來PTR(C)
struct node{
char* string;
}
我打算這已經創建了一個結構,例如,具有一個部件,字符指針名爲string。
現在,我計算出字符串的長度和malloc是一個合適大小的數組,並將其與輸入結合起來。
char* test;
test = (char*) malloc(n * sizeof(char));
據我所知,這已經創造了字符指針的測試,並已分配它在我剛malloc分配數組的頭指向。然後,我繼續將每個數組槽分配給用戶輸入的字符,然後將其讀回 - 這一切都可以編譯並正常工作。我的問題是當我嘗試這個字符指針分配給傳入這個結構的結構節點的字符串指針,如:
int f1(struct node* new){
所以我儘量在結構指針分配給指針的值到數組中,就像這樣:
new->string = test;
但我段錯誤。
對我來說,這似乎是我分配一個char *的東西,期望一個字符*所以這應該工作正常...我可能錯過了一些愚蠢的東西,但沒有人有一個方向指向我?非常感謝!
'new'是否指向一個已分配(棧或動態,請選擇)'struct node'?即使'test'是一個假指針,除非'new'無效,那麼賦值語句不會導致seg-fault。 – WhozCraig
脫離主題,但不要將變量命名爲'new',否則會混淆C++程序員。 – JohnnyHK
如果您想要移植到C++,那麼使用「new」作爲標識符並不是一個好主意。 – Sebastian