2013-11-24 43 views
0

我創建了一個代碼,根據行將文本中的句子轉換爲數組。 例如:指向字符串數組的指針數組

char ** Sentences[2] 
Sentences[0]="hello ola hiya howdy" 
Sentences[1]="chips fries" 

我需要每一行單獨進去的話(我已經有一個準備功能,其這樣做,並存儲輸出到一個char **陣列 我想用來存儲字的所有陣列(在這種情況下 - 每個句子2,1),通過創建一個指向這些數組的指針數組。 我將非常高興知道它是如何完成的。我還需要使用malloc創建一個臨時數組並存儲單詞它,以便每次動態地創建陣列。

可以,我可以使用字符* a拋棄並存儲在其中創建的數組?

我會更高興的解決方案。

編輯: 我創建了一個內存分配陣列,但它不斷改寫自己:

char ** Temp=NULL; 
     char **pointer[ir]; 

     for (Note = 0; Note < ir; ++Note) { 
      Temp=malloc(Count(' ',Sentences[Note])*sizeof(char *)); 
        int ifd=StoreArr(Sentences[Note],Temp," "); 
        pointer[Note]=&Temp; 
        printer(*(pointer[Note]),ifd); 

     } 

輸出我得到的是這樣的:

你好 OLA 你好 你好 埃坦 eitanon eitanya

但如果我打電話

printer(*(pointer[0]),3); 

外爲,我得到

eitan 
eitanon 
eitanya 

而不是第一字(這意味着該溫度不分配存儲器)? 我會很樂意提供幫助。

+0

究竟是什麼不清楚這樣做? – StoryTeller

+0

我掙扎着2個主要的事情:第一個是創建數組:我有一個函數返回每行中的單詞數(例如 - 4在句子[0] .i不知道如何創建一個臨時數組和malloc它的大小爲4個單元格爲例,並在下一次運行 - 2個單元格(對於單詞數量的句子[1])。我也不知道如何創建一個指向char **數組的指針數組。 – user3005945

+1

@ user3005945啓用編譯器錯誤並嘗試編譯您在問題中發佈的代碼 – this

回答

0

對於一個句子,你只需要一個char指針或一個char指針數組來存儲多個句子。

+0

好吧,但我不知道如何爲每個新數組分配內存。當我像這樣分配它時:Temp = malloc(Count('',Sentences [Note])* sizeof(char *)),它簡單地覆蓋現有的每一次。 – user3005945

+0

我會存儲單詞使用char **指針分配內存像這樣:temp = malloc(numberofwords * sizeof(char *));發佈你所有的代碼將有助於更多。 – Veritas

+0

你沒有包含code.my問題,char ** temp會一直覆蓋自己的原因。 – user3005945