私はC++のポインタについて学び始めており、以下のコードを使って配列内の要素へのアクセスを練習しています。配列境界外のポインタ
using namespace std;
char a[] = {'A', 'B'};
char* p = a;
cout << "ARRAY IS " << sizeof(a) << " BYTES." << endl;
cout << "CHARACTER IS " << sizeof(a[0]) << " BYTES." << endl;
cout << "THEREFORE LENGTH IS " << (sizeof(a)/sizeof(char)) << " ELEMENTS." << endl << endl;
cout << "INDEX 0: " << *p << endl;
p++;
cout << "INDEX 1: " << *p << endl;
p++;
cout << "INDEX ?: " << *p << endl;
p++;
cout << "INDEX ??: " << *p << endl;
return 0;
私は、配列には2つの要素しかないが、とにかくポインタをインクリメントしてみたことを理解しています。
どうすれば╟文字がコンソールに印刷されますか?
私はIDEとしてVisual Studioを使用しています。
プログラムの動作は未定義です。何も印刷しないか、何も印刷しないか、まったく別の処理を行う可能性があります。 –
範囲外の配列へのアクセスは未定義の動作です。つまり、何かが起こる可能性があります:クラッシュ、ゴミなど – crashmstr