月別アーカイブ: 2012年1月

[C++] new による多次元配列の動的作成

Saturday, January 14, 2012

2 次元配列を作ろうとして double **arr = new double[size_x][size_y]; とか書いたらコンパイラに怒られたのでメモ。

1 次元配列

double *array = new double[size_x];

delete[] array;

2 次元配列

ダメな例

double **array = new double[size_x][size_y];  // これはダメ

new により確保できる配列は 1 次元までなので,次のように 1 次元ずつ確保していく必要があります。delete による解放も同様に 1 次元ずつ行います。

正しい例

double **array = new double*[size_x];
for (int i = 0; i < size_x; i++) {
    array[i] = new double[size_y];
}

for (int i = 0; i < size_x; i++) {
    delete[] array[i];
}
delete[] array;

3 次元配列

3 次元以上の配列でも同じ手法で解決できます。

ダメな例

double ***array = new double[size_x][size_y][size_z]; // ダメ

正しい例

double ***array = new double**[size_x];
for (int i = 0; i < size_x; i++) {
    array[i] = new double*[size_y];
    for (int j = 0; j < size_y; j++) {
        array[i][j] = new double[size_z];
    }
}

for (int i = 0; i < size_x; i++) {
    for (int j = 0; j < size_y; j++) {
        delete[] array[i][j];
    }
    delete[] array[i];
}
delete[] array;

Windows のテキストエディタ

Thursday, January 5, 2012

Windows に付属するテキストエディタは「メモ帳」だけではありません。MS-DOS 時代からの「MS-DOS Editor」と「EDLIN」が,現在の Windows でもサポートされています (32-bit 版のみ)。ここでは,これら 3 つのテキストエディタを紹介します。

メモ帳

Notepad on Windows 7 (32-bit)

Notepad on Windows 7 (32-bit)

おなじみの notepad.exe です。

MS-DOS Editor

MS-DOS Editor on Windows 7 (32-bit)

MS-DOS Editor on Windows 7 (32-bit)

コマンドプロンプトを開いて edit と打つと起動します。edit hoge.txt のようにファイル名を指定して起動することもできます。

EDILN

EDLIN (エドリン) on Windows 7 (32-bit)

EDLIN on Windows 7 (32-bit)

「エドリン」と読みます。コマンドプロンプトから edlin hoge.txt のようにファイル名を指定して起動します。ラインエディタと呼ばれるタイプのエディタです。