Мне нужно создать динамический массив структуры wordStruct
, которая содержит строку и количество раз, когда она встречается в текстовом файле:
typedef struct wordStruct{
char word[50];
int count = 0;
}wordStruct;
Я получу нужное число от чтенияколичество слов в файле, назовем его wordCount
.
struct wordStruct *wordList;
wordList = (wordStruct *)malloc(wordCount * sizeof(wordStruct));
Это правильный способ выделения памяти для массива struct
?calloc()
будет лучшим вариантом?
int wordListIndex = 0;
char[50] inWord; // No word will be more than 49 characters + null terminator
for (i = 0; i < wordCount; i++){
fscanf(data, "%s", inWord);
for (j = 0; j < wordCount; j++){
if (strcmp(wordList[j].word, inWord) == 0){
wordList[j].count++;
break;
}
}
if (j == wordCount){
strcpy(wordList[wordListIndex].word, inWord)
wordListIndex++;
}
Я знаю, что это, вероятно, не самый эффективный код, но у меня есть правильная идея?Могу ли я использовать метод strcmp()
, даже если в этих массивах нет данных?Я новичок в структурах, и я не уверен, что я могу и не могу сделать.
Спасибо.