小编Ali*_*aba的帖子

在C中将const赋值给非const

在下面的:

struct adt { void * A; };

int new_adt(const void * const A)
{
    struct adt * r = malloc(sizeof(struct adt));
    r->A = A;
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

警告:赋值从指针目标类型中丢弃限定符


我知道我可以使用

memcpy(&(r->A), &A, sizeof(void *));
Run Code Online (Sandbox Code Playgroud)

解决它,但我必须问:有什么选择吗?

通过使用const void * const我假装说不会对输入进行任何更改.而且,现在我想到它,const void *就足够了,不是吗?(因为我无法更改指针以便它影响调用者)

感谢您抽出宝贵时间阅读.

c const void-pointers

3
推荐指数
2
解决办法
6575
查看次数

标签 统计

c ×1

const ×1

void-pointers ×1