タグ

動的配列に関するbarasixiのブックマーク (6)

  • array by C++

    C++での多次元配列の動的確保と開放 C++で多次元配列を扱うには, [1]  new, deleteにより配列確保を行う方法 [2]  STLのvectorを利用する方法 の二つが考えられます。おすすめは[2]です。 まず,配列とポインタの関係,および静的に2次元配列を確保する方法について,標準的なC++解説書やweb pageで一般的な勉強をしておいてください。その上で,以下のサンプルを研究してみてください。 なお,C/C++に関する丁寧なオンラインマニュアルとしては,例えば, C/C++Java  (静岡理工科大 学菅沼研究室) があります。以下で紹介しているプログラム例の一部はこのwebsiteを参考にし て作成しています。 [1] new, deleteの利用 1. 2次元配列の動的確保と開放。 new, deleteの使い方を学んでください。 また,不

  • Linux愛好者の独り言 C++で2次元配列を動的に確保する方法

    RSSリンクの表示 最近記事のRSS 最新コメントのRSS 最新トラックバックのRSS リンク スペック低くても関係ねーWinux/Lindows誰も教えてくれないITのすべてandonkun's note:: sing a song of song ::blog.remora.cx蒼い栞 -Aoi Shiori-ShiromaStyleAccess2GenzoKeep Alone管理画面 このブログをリンクに追加する プロフィール Author:五月雨へちま Linux始めて2年目くらいです。今はArchLinuxを使っています。 間違っている事も書いてしまうと思いますので,ツッコミやご指南をいただけると幸いです. リンクは気になった人のサイトを,勝手にリンクさせていただいてます。あまり気にしないでください。 Mail: SamidareHetima☆gmail.com  (お手数で

  • 行列ライブラリの設計(1) 8 動的配列

    2.8 動的配列 (1999/04/10 初版) 2.8.1 汎用的な関数 前のページで見たように、2次元配列を関数でやり取りするには、少なくとも配列 の後ろの添字サイズを指定する必要があります。例えば2次元配列 int mat[10][20]; を関数に渡すには、次のようなプロトタイプ void func(int (*a)[20], int row, int col); で宣言される関数が定義されている必要があります。関数は大きさが20の配列を指 すポインタaで受け取ります。 しかし、これでは関数に汎用性がありません。違うサイズの配列をこの関数に渡す ことができないからです。ここでは任意のサイズの2次元配列を扱える汎用的な関数 をつくります。 2.8.2 準備:ポインタを指すポインタ まず準備として、これまでの知識を使った演習問題を考えましょう。上述の関数 func()で「int (*)

  • 配列とポインタ

  • ポインタ配列とダブルポインタ変数の違いを理解していないプログラマー|SGソフトウェアの開発日記(鉄道ゲーム開発もしてますが最近はDLNAがらみの開発中心)

    SGソフトウェアの開発日記(鉄道ゲーム開発もしてますが最近はDLNAがらみの開発中心) ハードディスク故障に備えるための省スペースデータ保護ツール「RAIDっぽい」や、DVD-RAM用コピーツール「VRストリーム抽出ツール」など、各種ツールの商品開発の日々の出来事や、よもやま話などを綴っています。 PR SG箱庭鉄道線路を敷いて列車を走らせよう! SG箱庭鉄道 PCユーティリティファイル名の番号の桁を揃える 整列! マルチドライブ高効率バックアップ RAIDっぽい 保管期限切れのファイルを一括削除 保管期限切れファイルクリーナー まとめてファイルを移動 ファイル移動ツール ファイルの重複を検出 ファイル重複検出ツール サブフォルダ内のファイルを集約 サブフォルダ内ファイル集約ツール 空のフォルダーを削除 空フォルダー削除ツール ホームネットワーク複数のMPE

  • ポインタ虎の巻~多次元配列の実現

    面白いことに、p == *p である。これはポインタが指す対象が配列でありポインタではないから、間接参照が生成されないのである(逆に言えばポインタの場合には、*p が間接参照をして、p != *p になる)。 上の表の結果と、二次元配列のシンボル x は、実質上一次元配列であることから、次のキャストは成功することになる。 int *p = (int *)x; だから次のように書ける。 int x[10][10]; int i; int *p = (int *)x; for( i = 0; i < 100; i++ ) { *p++ = i; } printf( "x[5][5] = %d\n", x[5][5] ); これは x が実質上一次元のポインタであることを示している。 この事情は関数引数の場合も同様である。二次元配列とポインタは混同されず、しかし int (*p)[10] とは一

  • 1