私は以下を持っていますstructs
:
typedef struct stack {
void* ss_sp;
size_t ss_size;
// ...
} stack_t;
typedef struct ucontext {
ucontext_t* uc_link;
stack_t uc_stack;
// ...
} ucontext_t;
typedef struct mythread_type {
ucontext_t context;
int ID;
int status;
} mythread_t;
今、私は次のような配列を持っています:
mythread_t mythreads[100];
使用を避けたい
mythreads[0].context.uc_stack.ss_size
読みやすさの理由から。
ここで、次の2つのコードブロックが同等かどうか疑問に思いました。
ブロック1
ucontext_t c=mythreads[0].context; getcontext(&c); c.uc_stack.ss_size=1024; c.uc_stack.ss_sp=malloc(1024);
ブロック2
ucontext_t* c=&(mythreads[0].context); getcontext(c); (c->uc_stack).ss_size=1024; (c->uc_stack).ss_sp=malloc(1024);
私が欲しいのは、mythreads[0]
1024バイトを割り当てるスタックのコンテキストです。