配列へのポインターと通常のポインターとアクセス方法に関して少し混乱しています。私はこれを試しました...
int *ptr1, i;
int (*ptr2)[3];
int myArray[3] = {1, 1, 1};
int myArray1[5] = {1, 1, 1, 1, 1};
ptr1 = myArray;
ptr2 = myArray1;// compiles fine even though myArray1 contains 5 elements
// and ptr2 is pointing to array of 3 elements.
printf("%d",ptr2[3]); // prints some garbage.
なぜこのステートメントはガベージを印刷するのですか? 正しい言い方は?誰でも説明できますか?