Массив структур работает неправильно - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д