Извините, если это очень нубский вопрос, я новичок в C и испытываю значительные затруднения с пониманием указателей и других понятий, делающих его очень трудным.Ошибка сегментации, я не знаю, почему, пожалуйста, помогите.Я думаю, что это может быть из-за использования массивов для хранения.Кроме того, если бы вы могли порекомендовать отладчик, было бы очень полезно.Заранее спасибо.
#include <stdio.h>
#include <string.h>
char *lineaccept(char *buf, size_t sz){ //Getting inputs using fgets() and storing it in buf.
if(fgets(buf,sz,stdin)==NULL){
printf("ERROR\n");
return NULL;
}
if(strlen(buf) == 1) {
printf("ERROR\n");
return NULL;
}
return buf;
}
void delimitLine(char *buf, char *delimited[], size_t max){ //Taking the string from buf and getting each individual word to store in split[]
if(buf != NULL){
const char s[2] = " ";
char *token;
token = strtok(buf, s);
int counter = 0;
while( token != NULL && counter <= max){
split[counter] = token;
token = strtok(NULL, s);
counter ++;
}
for(int y = 0; y < counter; y++){
if(split[y]==NULL){
break;
}else{
printf("%s\n",split[y]);
}
}
}
}
int main(void) {
const int maxWords = 10;
char maxLenInput[11];
char *arrOfWords[100];
char inputFromLine[100];
while(strcmp((strcpy(inputFromLine,lineaccept(maxLenInput, maxWords))), "")>0) {
delimitline(inputFromLine, arrOfWords, maxWords);
}
return 0;
}