Массив структур работает неправильно - C (СИ)
Формулировка задачи:
Создаю структуру, а потом динамически выделяю память для массива структур и присваиваю адрес начала указателю p_edu
так вот не понятно почему первое значение выводит бредовое второе нулевое
а если p_edu-> заменить в цикле на p_edu[i] то все нормально, хотя казалось бы и приращение указателя делаю и поочередно к элементам доступаюсь, в чем может быть проблема?
и еще вопрос, немного путаюсь в Си из-за С++, когда я создаю указатель на структуру(не динамически), то я и сразу создаю структуру(в С++ создается просто указатель на объект типа данной структуры)?
5 struct EduTerm { int examNum; // Count of Exams float totalScore; }; p_edu = (struct EduTerm* ) malloc(termNums * sizeof(struct EduTerm)); //потом в цикле с помощью указателя пытаюсь их заполнить for (int i = 0; i < termNums; ++i) { .... p_edu->examNum = examNum; p_edu->totalScore /= examNum; ... ++p_edu; } // в цикле все норм но когда я делаю вывод for (int i = 0; i < termNums; ++i) { printf("Number of Exams in %d\n", p_edu[i].examNum); printf("Total score in %d ", p_edu[i].totalScore); }
Решение задачи: «Массив структур работает неправильно»
textual
Листинг программы
const char *p;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д