Ваша ошибка в том, как вы объявляете insertLifo()
, так как вы неправильно объявляете второй параметр.Это должно быть:
bool insertLifo(LifoQueue queue, MyStuff* data)
, чтобы вы могли передать переменную по ссылке.Затем вы должны сделать:
printf("bla bla %s", data->name);
, поскольку спецификатор формата %s
требует передать параметр типа char *
, поскольку name
есть.
Но, как ясказал вам в комментарии к вашему вопросу, нам нужен полный и проверяемый пример, чтобы иметь возможность сделать диагностику.Вы этого не делали, поэтому вы получаете неполные ответы.Пожалуйста, прочитайте Как создать минимальный, полный и проверяемый пример
Другая ошибка заключается в том, что, вероятно, вам потребуется передать также первый параметр insertLifo()
по ссылке, так как вам нужновероятно, чтобы изменить эту структуру, и если вы передадите ее по значению, она будет скопирована в функцию, и любые изменения, которые вы сделаете с ней, будут потеряны при возврате функции.
Наконец, вы говорите
Я хочу полностью понять, как использовать указатели.
Ну, это полностью выходит за рамки этого приложения.StackOverflow предназначен только для того, чтобы помочь вам исправить небольшую проблему в вашем коде, но не для того, чтобы научить вас программировать.Я могу сказать, что многие люди проходят всю свою жизнь, пытаясь понять, как использовать указатели, и никогда не добиваются успеха.Это зависит от многих аспектов, но хорошо, что вы можете сделать, это купить хорошую книгу на C.