以下では:
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 *
それで十分でしょう?(呼び出し元に影響を与えるようにポインターを変更できないため)
読んでいただきありがとうございます。