Выделение памяти с помощью mallo c изменяет адрес памяти другой переменной - PullRequest
0 голосов
/ 02 августа 2020

Что происходит, так это то, что первый printf показывает другую ячейку памяти, чем второй . Код, который создает проблему.

printf("%p\n", node->main_stacks->a_stack->top);
new_lsl_node->a_stack = (struct stack*) malloc(sizeof(struct stack));
if(new_lsl_node->a_stack == NULL) return -1;
printf("%p\n", node->main_stacks->a_stack->top);

Все структуры, которые я использую в программе, выглядят так:

struct name1
{
    struct name2 *pointer_to_another_struct;
    struct name1 *pointer_to_the_next_node;
}

Итак, проблема появляется после того, как я полностью все удалю под структурой main_stacks-> pointer_to_another_struct а позже я пытаюсь выделить память для другой структуры, как показано выше. Между показанным выше кодом ничего не происходит.

...