@Neco797

Объясните пожалуйста работу этого кода?

я студент 1 курса, на паре мы проходили указатели и динамическое выделение памяти(создание динамического массива)
Объясните пожалуйста как он работает:
//Реализация динамического массива
#include
#include
int main()
{
struct A {
int a;
A* next;
};
A* start;
start = (A*)malloc(sizeof(A));

A* it = start;

for (int i = 0; i < 3; i++) {
scanf_s("%d", &it->a);
it->next = (A*)malloc(sizeof(A));
it = it->next;
}

it->next = NULL;
it = start;
while (it->next != NULL)
{
printf_s("%d\n", it->a);
it = it->next;
}
}
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 2
AshBlade
@AshBlade
Просто хочу быть счастливым
Во-первых, оберни код в секцию.
Во-вторых, этот код проходит по всему связному списку, начиная с головы, и на каждой строчке печатает значение из этого узла:
1. Аллоцируется память для головы списка
2. С консоли 3 раза считываются числа и каждый раз в конец списка добавляется новый узел
3. Связный список проходится, начиная с головы, и в консоль выводится число в этом узле. Список обходится, пока не будет достигнут хвост (у него нет потомка)
Ответ написан
Комментировать
@alexalexes
я студент 1 курса, на паре мы проходили указатели и динамическое выделение памяти

Нужно открыть лекции от этой пары, там, наверняка, что-то нацарапано про звездочку возле названия переменной, и про всякие маллоки/аллоки.
Еще погуглите про связные списки и типичные примеры их создания. Там увидите что-то знакомое по этому коду.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы