[過去ログ] 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
330
(3): 2018/09/01(土)21:11 ID:DoChZsV8(1/2) AAS
C形式の二次元配列は先頭から一次元配列みたいな顔して普通にアクセスできると思うんですが
C++11以降でネストしたstd::arrayでもポインタを使って一次元配列のようにアクセスしても規格上セーフですか?

↓のコードのようにforループ一つで上下左右方向の繰り返しを済ませたいです
外部リンク:ideone.com
332: 330 2018/09/01(土)23:53 ID:DoChZsV8(2/2) AAS
>1次元の可変の列を行とみなして
>そのそれぞれの行に可変の1次元の列がある状態になってる
>つまり、行毎にバラバラにそれぞの行のヒープができる作りになる
というのはどういうことでしょうか
行ごとにバラバラなので行をまたいでのアクセスはできないという意味でしょうか

C形式の多次元配列もネストされたstd::arrayも、各要素は連続したメモリ領域に置かれていますよね
というかC形式の(少なくとも)二次元配列は一次元配列として全要素にアクセスできると思っていたのですが
省1
335
(2): 2018/09/02(日)00:23 ID:PYGLVvbR(1/3) AAS
>>330
Cでも未定義動作だよ。
JIS C (JIS X 3010:2003) 6.5.6 加減演算子
>  整数型をもつ式をポインタに加算又はポインタから減算する場合,結果は,ポインタオペランドの型を
> もつ。(中略)ポインタオペランド及びその結
> 果の両方が同じ配列オブジェクトの要素,又は配列オブジェクトの最後の要素を一つ越えたところを指し
> ている場合,演算によって,オーバフローを生じてはならない。それ以外の場合,動作は未定義とする。
340: 335 2018/09/02(日)00:36 ID:PYGLVvbR(2/3) AAS
>>330
ごめん引用元のURL貼り忘れてた。
外部リンク[html]:kikakurui.com
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s