在下面的:
struct adt { void * A; };
int new_adt(const void * const A)
{
struct adt * r = malloc(sizeof(struct adt));
r->A = A;
}
我得到:
警告:赋值从指针目标类型中丢弃限定符
我知道我可以使用
memcpy(&(r->A), &A, sizeof(void *));
解决它,但我必须问:有没有其他选择?
通过使用const void * const
我假装说不会对输入进行任何更改。而且,现在我想起来,const void *
就足够了,不是吗?(因为我无法更改指针以影响调用者)
感谢您花时间阅读。