3

この float 配列宣言がある場合:

float tables[10];

「テーブル」配列の長さを 20 に変更するにはどうすればよいですか?

C++ の配列に関連する別の質問:

次のような配列を宣言することはできません。

int length=10;

float newTables[length]; // error C2133: 'newTables' : unknown size

前もって感謝します。

4

4 に答える 4

14

配列の長さは変更できません。C++ では、std::vector動的配列にを使用する必要があります。

#include <vector>

int main() {
    std::vector::size_type length = 10;
    std::vector<float> tables(length); // create vector with 10 elements
    tables.resize(20); // resize to 20 elemets
    tables[15] = 12; // set element at index 15 to value 12
    float x = tables[5]; // retrieve value at index 5
}
于 2012-04-11T08:09:01.313 に答える
1

ビルド時に配列のサイズを適切に定義できる場合は、#define を使用できます

#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];

または、実行時に配列のサイズを指定する必要がある場合は、 new を使用します

float* newtables;
newtables = new float[20];
于 2012-04-11T08:12:32.450 に答える
1

C++ の配列は固定長です。純粋な配列に固執したい場合は、malloc 、 realloc 、および freeを使用してメモリを動的に割り当てる必要があります。ただし、動的メモリ割り当てにはstd::vectorまたはstd::dequeを優先する必要があります。

于 2012-04-11T08:13:18.770 に答える
0

C++ でプログラムを実行している間、配列の長さを動的に変更することはできません。配列を宣言する方法については、次のことをお勧めします。

const int length=10;
float newTables[length];

それがあなたの望むものかどうかはわかりません。この場合、変数「長さ」は定数であり、実行中に変更することはできません。

お役に立てば幸いです。

于 2012-04-11T08:17:38.007 に答える