Массив структур работает неправильно - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Создаю структуру, а потом динамически выделяю память для массива структур и присваиваю адрес начала указателю p_edu
Листинг программы
  1. 5
  2. struct EduTerm
  3. {
  4. int examNum; // Count of Exams
  5. float totalScore;
  6. };
  7. p_edu = (struct EduTerm* ) malloc(termNums * sizeof(struct EduTerm));
  8. //потом в цикле с помощью указателя пытаюсь их заполнить
  9. for (int i = 0; i < termNums; ++i) {
  10. ....
  11. p_edu->examNum = examNum;
  12. p_edu->totalScore /= examNum;
  13. ...
  14. ++p_edu;
  15. }
  16. // в цикле все норм но когда я делаю вывод
  17. for (int i = 0; i < termNums; ++i) {
  18. printf("Number of Exams in %d\n", p_edu[i].examNum);
  19. printf("Total score in %d ", p_edu[i].totalScore);
  20. }
так вот не понятно почему первое значение выводит бредовое второе нулевое а если p_edu-> заменить в цикле на p_edu[i] то все нормально, хотя казалось бы и приращение указателя делаю и поочередно к элементам доступаюсь, в чем может быть проблема? и еще вопрос, немного путаюсь в Си из-за С++, когда я создаю указатель на структуру(не динамически), то я и сразу создаю структуру(в С++ создается просто указатель на объект типа данной структуры)?

Решение задачи: «Массив структур работает неправильно»

textual
Листинг программы
  1.     const char *p;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы