Подтвердить что ты не робот

Выделить указатель внутри указателя структуры

У меня есть структура:

struct mystruct
{
    int* pointer;
};

structure mystruct* struct_inst;

Теперь я хочу изменить значение, на которое указывает struct_inst->pointer. Как я могу это сделать?

ИЗМЕНИТЬ

Я не писал его, но pointer уже указывает на область памяти, выделенную malloc.

4b9b3361

Ответ 1

Как и любой указатель. Чтобы изменить адрес, он указывает на:

struct_inst->pointer = &var;

Чтобы изменить значение по адресу, на который он указывает:

*(struct_inst->pointer) = var;

Ответ 2

Вы создаете указатель типа mystruct, я думаю, возможно, вам не нужен указатель:

int x;
struct mystruct mystruct_inst;
mystruct_inst.pointer = &x;
*mystruct_inst.pointer = 33;

Если вам нужен указатель-мишень в куче:

int x;
struct mystruct *mystruct_inst = malloc(sizeof(struct mystruct));
mystruct_inst->pointer = malloc(sizeof(int));
*(mystruct_inst->pointer) = 33;  

/*Sometime later*/

free(mystruct_inst->pointer);
free(mystruct_inst);