Пусть существует функция, которая возвращает сообщение слово в следующем формате:Вопрос о передаче переменной, созданной в функции
struct message
{
void* data;
}msgG;
Какой бы лучшим способом для извлечения данных (то есть Получить сообщение доступным для fUN1 в коде): 1- с помощью глобальной переменной 2- Использование двойных указателей (указатель на указатель)
//Note: msgG is the global variable
void fun2(struct message **ptr)
{
**ptr = msgCreate(); // msgCreate returns a type struct message;
msgG = msgCreate();
}
void fun1()
{
....
.....
struct message *ptr;
ptr = malloc(sizeof(struct message));
fun2(&ptr);
...
}
Теперь мы сообщение, хранящуюся в msgG и PTR? Какой из них лучше? Использование глобальной переменной или доступ к указателю, поскольку один из них выделен в куче, а другой в bss (не уверен в этом)? Есть ли другой способ справиться с такой ситуацией?
Не могли бы вы дать немного больше контекста? Я не уверен, что я достаточно разбираюсь в ситуации, чтобы дать свое мнение. – Juan
@juan: msgCreate() обычно используется как recv() из программы netwrking. Я разговариваю с abt обрабатывая полученное сообщение. – tomkaith13