Oracle Solaris Studio 12.2: C ユーザーガイド

5.3.3 構造体ポインタへの構造体フィールドのキャスト

次の例では、構造体メンバーのアドレス foo.b は構造体ポインタとしてキャストされ、f2 に割り当てられます。lint -Xalias_level=weak (またはそれ以上) を指定すると、エラーが生成されます。


struct foo{
    int a;
    int b;
  };

struct foo *f1;
struct foo *f2;

void main()
{
    f2 = (struct foo *)&f1->b; /* cast of a scalar pointer to struct pointer error*/
}