Я хочу создать массив из 26 массивов слов (чтобы отсортировать мои списки слов по первой букве), поэтому я считаю, что я выделил память соответствующим образом, но когда я пытаюсь выполнить тестовый прогон и установить случайное слово «привет», для каждой точки, в которой должно быть слово, он работает только для первых 5 букв, а затем возвращает установленную ошибку. Простите мой код или описание, я довольно новичок. HELP
Примечание: оба моих параметра определены во внешних функциях, wordArray - это массив слов в данном текстовом файле, numWordsPerLetter - это целочисленный массив, который содержит количество слов, начинающихся с каждой буквы алфавита.
char*** create_alphabetical_array(char** wordArray, int* numWordsPerLetter){
char*** alphabeticalArrays;
int i, j;
alphabeticalArrays = malloc(sizeof(char**)*26);
for (i = 0; i < 26; i++){
printf("%d\n", numWordsPerLetter[i]+1);
alphabeticalArrays[i] = malloc(sizeof(char*)*numWordsPerLetter[i]+1);
}
for (i = 0; i < 26; i++){
for (j = 0; j < (numWordsPerLetter[i]+1); j++){
printf("%d %d %d\n", i, j, numWordsPerLetter[i]+1); /* using to help debug */
strcpy(alphabeticalArrays[i][j], "hi");
}
}
return (alphabeticalArrays);
}