Выделение памяти для элемента структуры внутри функции
Есть простая структура :
typedef struct
{
char* name;
char* surname;
} data;
Внутри функции main я объявляю указатель на эту структуру и передаю один из параметров в функцию :
data* var = (data*)malloc(sizeof(data)); // Указатель на структуру.
create(var->name);
Внутри функции пытаюсь выделить память под этот элемент и заполнить символами, но почему-то это не работает
void create(char* element)
{
element = (char*)malloc(2 * (sizeof(char)));
element[0] = 'a';
element[1] = '\0';
printf("%s", element);
}
Подозреваю, что выделяю память внутри функции под что-то другое
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Попробуйте:
data* var = (data*)malloc(sizeof(data)); // Указатель на структуру.
create(&var->name);
void create(char** element)
{
*element = (char*)malloc(2 * (sizeof(char)));
(*element)[0] = 'a';
(*element)[1] = '\0';
printf("%s", *element);
}
Вам же надо, чтобы была выделена и заполнена память именно var->name?
Кстати, если вы работаете именно в С, не С++, то приведение (char*)malloc... излишне.