2011-08-09 41 views
0

我正在使用C函數將字符串拆分爲數組,但它保留段錯誤,我不知道爲什麼。將字符串拆分爲字母數組

我已經通過DDD運行了幾次,這沒有太大的幫助。

char* stringToArray(const char *desc) 
{ 
    int i = 0; 
    int j = 0; 
    char *array[5][10] = {{0}};/*5 words, 10 chars each*/ 

    while (desc[i] != '\0') 
    { 
     if (desc[i] != ' ') { 
      *array[j][i] = desc[i]; /*seg faults here*/ 
     } 

     else { 
      j++; 
     } 
     i++; 
    } 
    return **array; 
} 

任何幫助將不勝感激 謝謝。

+2

每個'array [J] [I]'是一個指針。你還沒有將所有這些指針指向某個有效的地方。 – pmg

+0

ahh ok,所以我想刪除那個*,然後我們去 –

+1

你也不應該返回一個指向棧分配變量('array')的指針。這是行不通的。 – user786653

回答

1

您將需要使您的數組爲靜態或爲其分配一些內存 - 返回指向本地數組的指針將不起作用。

你也可能想看看strtok。