私には構造があります:
struct mystruct
{
int* pointer;
};
structure mystruct* struct_inst;
ここで、struct_inst->pointer
が指す値を変更します。どうやってやるの?
[〜#〜] edit [〜#〜]
書きませんでしたが、pointer
はすでにmalloc
で割り当てられたメモリ領域を指しています。
他のポインターと同様。 addressを変更するには、次を指します。
_struct_inst->pointer = &var;
_
値が指すアドレスで変更するには:
*(struct_inst->pointer) = var;
タイプmystructのポインターを作成しています。おそらくポインターは必要ないと思います。
int x;
struct mystruct mystruct_inst;
mystruct_inst.pointer = &x;
*mystruct_inst.pointer = 33;
代わりにヒープにmystructポインターが必要な場合:
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);