на данный момент у меня есть проект для исследований, и я и друг действительно не знаем, как решить проблему на части этого.массив в структуре и заполнить его
Итак, это проект C. У меня есть 2-структура:
struct Lib {
char letter;
int capacity;
int size;
char** words[200000];
};
typedef struct Lib Library;
struct Program {
char* loadedFileName[50];
FILE* f;
Library* dictionary;
int totalwords;
};
typedef struct Program Program;
И эта функция:
void fillDicoFromFile(Program* startup){
rewind(startup->f);
while(!feof(startup->f) && !ferror(startup->f)){
char* word = malloc(sizeof(char) * 30);
fscanf(startup->f, "%s", word);
int indexLib = word[0] - 97;
int sizeLib = startup->dictionary[indexLib].size;
startup->dictionary[indexLib].words[sizeLib] = (char*)malloc(sizeof(char) * (strlen(word)+1));
startup->dictionary[indexLib].words[sizeLib] = word;
startup->dictionary[indexLib].size++;
free(word);
}
CountTotalWords(startup);
}
startup-> Словарь представляет собой массив из 26 библиотеки, и когда я получаю слово из файла, я проверить свое первое письмо и выберите «Хорошая библиотека» (startup-> dictionary [0] для «a» ...), а затем поместите слово в массив «word» структуры, но когда я хочу напечатать несколько слов, это прослушивание строк или ошибок. Я уверен, что мы делаем неправильно в указателях, но где ...
Что мы делаем неправильно?
Нам нужен полный исходный пример, включая входы и выходы – KevinDTimm
'char ** words []' выглядит подозрительно. Чего ты хочешь достичь? В любом случае, вы не вводите правильный тип. Обратите внимание на предупреждения компилятора и выверните их. Также не используйте результат «malloc' & friends» или «void *» в целом. – Olaf