【发布时间】:2011-06-25 05:45:57
【问题描述】:
如下:
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 * 就足够了,不是吗? (因为我无法更改指针以影响调用者)
感谢您抽出宝贵时间阅读。
【问题讨论】:
-
你在哪里声明
r?它的类型是什么?
标签: c constants void-pointers