Массив структур работает неправильно - 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;