我正在尝试获取一个字符串并将其分解为“单词”组件并将其存储在字符串数组中。“你好,我叫比尔。” 应该返回一个带有元素的 char**,“Hello”、“my”、“name”、“is”和“Bill”。
我的代码将编译,但是我一直遇到运行时错误(我不再收到警告,而且我的调试器 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;
}