Я видимо что то не понимаю. Программа должна просто разбить строку на слова и записать в список указателей list. Где тут проблема, не подскажете?
Любой символ не из латиницы пропускается.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define ROWS 100
int main(){
char *str="Hello !world !\n";
char **list = (char **) calloc(ROWS, sizeof(char));
char *word = NULL;
int y;
for(int i=0, j=0;i<strlen(str);i++){
y=0;
while(isalpha((char) str[i])){
word = (char *) realloc(word, sizeof(word) + 1);
word[y++]=str[i++];
}
word[y]='\0';
if(y!=0){
list[j] = (char *) calloc(sizeof(word), sizeof(char));
strcpy(list[j++], word);
list[j]=NULL;
}
}
for(int i=0; list[i]!=NULL;i++)
printf("%s ", list[i]);
printf("\n");
return 0;
}
Ошибка : "Ошибка сегментирования (сделан дамп памяти)"
//
//
//
Спасибо, кто помогал.