Я работаю над домашним заданием для CS1, оно должно вернуть нас к скорости, если мы забыли некоторые из наших C (это в основном о указателях и распределении памяти). Я работаю над этим более 15 часов, и мне нужна серьезная помощь.
Проблема говорит нам использовать структуру следующим образом:
typedef struct LottoPlayer {
char first[20];
char last[20];
int nums[6];
} KBLP;
Мы должны прочитать файл и динамически распределить память для массива этих структур, а затем мы можем использовать эту информацию для выбора победителей yada yada. Всякий раз, когда я запускал свой код, я продолжал получать мусор обратно. Так что это то, что у меня есть, я думаю, проблема в арифметике моего указателя или в том, как я настроил свой malloc.
int main() {
//Code to open the files
int NumTickets;
fscanf(infile, "%d", &NumTickets);
KBLP *size=malloc(NumTickets*sizeof(KBLP));
А потом, когда я читаю файл и записываю его в массив, я делаю
int index;
int i;
for (index=0; index < NumTickets; index++) {
fscanf(infile, "%s", size[index].last);
fscanf(infile, "%s", size[index].first);
for (i=0; i<6; i++) {
fscanf(infile, "%d", size[index].nums[i]);
}
}
Теперь я чувствую, что мне здесь не хватает какой-то глупости, потому что, когда я отлаживаю и пытаюсь получить доступ к size [index] .first и тому подобному, я получаю обратно мусорную память. Я не правильно распределяю это? Я правильно не пишу? Или оба?