文字列を取得して「単語」コンポーネントに分割し、それを文字列の配列に格納しようとしています。「こんにちは、私の名前はビルです。」要素「Hello」、「my」、「name」、「is」、および「Bill」を含む char** を返す必要があります。
コードはコンパイルされますが、実行時エラーが発生し続けます (警告が表示されなくなり、デバッガー gdb が機能しません)>
Window 8 で minGW を実行しています。
#include <stdio.h>
#include <stdlib.h>
char** words(char* string)
{
int i = 0;
int j = 0;
int k =0;
int count = 0;
char** stringArray = (char**) malloc(sizeof(char)*30*30);
while( string[i] != '\0' )
{
if(string[i] != ' ')
{
j =0;
while(string[i+j+1] != ' ')
{
j++;
}
i = i+j;
for(k=0; k<=j; k++)
{
stringArray[count][k] = string[i+k];
}
count++;
}
i++;
}
return stringArray;
}
int main()
{
char message[20] = "abcd efgh ijkl mno";
char** wordArray = words(message);
printf("%c\n\n", wordArray[0][0]);
int i =0;
while(wordArray[i])
{
printf("%s\n", wordArray[i]);
i++;
}
printf("\nThe problem is not with the words function");
return 0;
}