[問題] struct中的char *
最近遇到了這個問題
所幸網路上也有人討論了這問題(內有程式碼):
http://soarlin.pixnet.net/blog/post/22520209
主要是說在stuct中若是有char *成員的話
在每次malloc一個struct node的實體時,如果要使其中的char *成員指向一個字串時
,必須要在另外再malloc其記憶體空間(大小為該字串的大小)
下面是我想問的問題
str是一個指向來自standard input的字串
char *str=(char *)malloc(sizeof(char)*SIZE);
scanf("%s",str);
並且將str的內容(該字串的位置)指定給node->name; //type為char *
node->name=str; //Head->name也指向所輸入的standard input
只是在這邊會出現不如預期的結果(如果重複上面動作的話)
必須要另外malloc該char*的空間才會正常
在連結上面的解釋是如果沒有另外malloc的話所有的struct node的實體都會使用到
同一個char *指標的記憶體空間 // why?
可能問題表達的不是很好
不過看上面的連結會比較清楚
謝謝各位大大的指教
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.145.45
推
04/08 11:45, , 1F
04/08 11:45, 1F
→
04/08 11:45, , 2F
04/08 11:45, 2F
推
04/08 11:59, , 3F
04/08 11:59, 3F
→
04/08 12:00, , 4F
04/08 12:00, 4F
推
04/08 12:07, , 5F
04/08 12:07, 5F
→
04/08 12:07, , 6F
04/08 12:07, 6F