私は私のコードでは、このような何かを持っている場合:同じアドレスのC構造割当は有効ですか?
void f(struct foo *x, struct foo *y)
{
*x = *y; // structure copy (memcpy?)
}
同じアドレスにxとyのポイントは、どのような問題が発生した場合は?
この有効なコードであり、コンパイラが代入を無効なオペランドの可能性のあるmemcpyコールに変換する場合(オーバーラップできない場合)はどうなりますか?
[はい、この場合は「制限」を使用できますが、これを考慮した実際のコードはbisonによって自動的に生成されるため、常に有効かどうか、またコンパイラmemmoveなどを使用する必要がありますオーバーラップ..]
チェックをする必要はありません。 –
downvote、vow。 –