Указатель на указатель vs простой указатель в C

Недавно написал стек на C и была у меня там такая вот функция (если она неэффективна, то это не важно):

void push(struct Stack* stack, int value){

    if (isFull(stack)){
        realloc(stack->array, sizeof(stack->array)+sizeof(int));
        stack->size += 1;
    }

    stack->array[stack->top_index + 1] = value;
    stack->top_index += 1;

    return;
}

Всё работало. Элементы добавлялись. После я решил написать список по гайду с geeksforgeeks (https://www.geeksforgeeks.org/linked-list-set-2-inserting-a-node/). Там я столкнулся с указателями на указатели. Вроде бы понял, что это нужно, если надо изменить указатель, который приходит в функцию как аргумент. Но почему тогда у меня всё работало в push-е стека? Я же там делаю realloc, т.е. меняю место в памяти, куда указывает указатель, значит меняю и его. Но, опять же, "двойного" указателя нет, а всё работает. Пожалуйста, объясните подробно, почему это так?


Ответы (0 шт):