2011-08-09 27 views
0

文字列を配列に分割するC関数を使っていますが、segフォールディングを維持していますが、理由はわかりません。単語の配列に文字列を分割する

私は数回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

ああ、だから私はそれを取り除きたいと思う*とオフに行く –

+1

また、スタックに割り当てられた変数( 'array')へのポインタを返すべきではありません。それは動作しません。 – user786653

答えて

1

あなたの配列を静的にするか、それに何らかのメモリを割り当てる必要があります - ローカル配列へのポインタを返すことはできません。

strtokをチェックすることもできます。

関連する問題