c++のnew演算子について
Re: c++のnew演算子について
pはint型の要素1つ分しか確保していないのでp[1]やp[2]にアクセスしてはいけません。fly3555 さんが書きました:
これを実行すると何のエラーもなく通ります。p[1],p[2]に関してはメモリの確保を行っていないのに代入できて大丈夫なのでしょうか。
配列の添え字の範囲チェックはしてくれないのでエラーも出なければ、なんとなく動作するかもしれませんが、
p[1]やp[2]の領域はほかの用途で使われる可能性もあるので読み取りも書き込みもしてはいけません。
(ほかの変数領域を破壊したり、おかしな値が取得できたりと意図しない動作をします)
Math さんが書きました:int arrはint *(arr+i)のsyntactic sugarだからです
http://dixq.net/forum/viewtopic.php?f=3&t=8134
糖衣構文(syntactic sugar)であっても*(p+1)や*(p+2)にアクセスしてはいけません。
リンク先でも指摘されていることではありますが誤解しないようご注意ください。
Advanced Supporting Developer
無理やりこじつけ(ぉ
無理やりこじつけ(ぉ