首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C空指针强制转换

C空指针强制转换
EN

Stack Overflow用户
提问于 2018-03-23 10:09:38
回答 1查看 119关注 0票数 1
代码语言:javascript
运行
复制
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来完成任务的一种征兆。完成这项任务的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-03-23 10:13:30

代码语言:javascript
运行
复制
 *(int*)&s->val = val;

表示“获取struct s中字段val的地址并将"val”写入其中。这使得s->val指向存储在test "val“参数中的地址。

代码语言:javascript
运行
复制
*(int*)s->val = val;
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49441319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档