Я пытаюсь передать массив двумерных символов *, массив 1D int и целое число в функцию, используя структуру, однако у меня возникают проблемы, когда я не могу понять, как передать их по ссылке с помощью указателей, а не просто по значению. Мне нужно, чтобы все переменные были доступны для редактирования с помощью функций, в которые они передаются, и чтобы это значение отражалось во всей программе, а не только в области действия функции. По сути, как глобальная переменная, но передается от функции к функции с использованием структур, определенных изначально в функции main
.
Сначала я использовал глобальные переменные во время разработки, поскольку это работало, и это было легко, однако я запустил в некоторых вопросах доступа к значениям в одном из массивов (при доступе из определенной функции он будет возвращаться пустым), и я знаю, что глобальные переменные, как правило, плохая идея.
Я использую GTK, так что пока как я знаю, единственный способ передать несколько аргументов в обратный вызов - это использовать структуры, поэтому мне нужно передавать их через структуру, а не передавать их непосредственно в функцию. Если я не прав?
Мне нужно определить следующее:
char* queuedHashes[100][101];
int queuedHashTypes[100] = {(int)NULL};
int hashCount = 0;
У меня возникли проблемы с пониманием указателя и синтаксиса структуры, необходимых для достижения этой цели, и методов, которые я пробовал привело к тому, что я столкнулся с типом массива char * not assignable
, поэтому не смог реализовать ничего, что пока работает.
Любая помощь будет принята с благодарностью, спасибо.