有以下代码:
struct A { bool b; int arr[2]; int i; int j; }; int main() { A a; a.b = false; a.arr[0] = 1; a.arr[1] = 2; a.i = 20; a.j = 30; *(a.arr + 1) = 40; A *p = 0; unsigned int q = (unsigned int)(&p->i); (*(int *)((char *)&a + q)) = -50; return 0; }
当main函数返回之前,请问以下哪些说法是错误的()