| ebolaman     
         
   
  
  級別: 副版主  
                      版區: 程式設計  x38  x458 | 分享:        ▲
                    
                      ▼         
 
   抱歉我又發現我打錯了
 應該是要
 
 str_year=(char*)malloc((2+1)*(12)*sizeof(char));
 str_cnstl=(char*)malloc((4+1)*(12)*sizeof(char));
 
 
 
 
 至於 str_year=(char*)malloc((2+1)*(12)*sizeof(char));
 
 2 是 例如 "雞" 的長度
 1 是我額外好看用的分隔字元 ","
 
 12 是有 十二生肖,至於之前 *2 是我之前只打中文時遺留下來的,打錯了
 
 
 
 既然已經
 
 str_year="鼠,牛,虎,兔,龍,蛇,馬,羊,猴,雞,狗,豬";
 str_cnstl="水瓶,雙魚,牧羊,金牛,雙子,巨蟹,獅子,處女,天秤,天蠍,射手,摩羯";
 
 
 我現在才終於了解,那些字串已經被載入到記憶體
 
 因此指定符號只是指定 str_year 指標的位置到那個地方,之前 malloc 這個動作是白費力氣了,所以就算刪除也不會有問題
 
 但是 get_str 函數內所需要使用的 tempc 就一定要用 malloc 因為內容需要被更動
 
 
 唉唉,我對字元與字串還有型態還是搞不太清楚噫
 
 我已經將程式碼重新修改過了,請參考前面回覆部分
 
 |