typedef struct{
void *val;
}struct_t;
void test(int val)
{
struct_t *s = malloc(sizeof(struct_t));
s->val = malloc(sizeof(int));
*(int*)&s->val = val;
free(s->val);
}free会产生一个sigabrt,但我认为这更多的只是我使用s->val来完成任务的一种征兆。完成这项任务的正确方法是什么?
发布于 2018-03-23 10:13:30
*(int*)&s->val = val;表示“获取struct s中字段val的地址并将"val”写入其中。这使得s->val指向存储在test "val“参数中的地址。
*(int*)s->val = val;https://stackoverflow.com/questions/49441319
复制相似问题