[解決済み] C++ グローバル配列の初期化
2022-01-29 14:01:45
質問
皆さん、こんにちは。私は経験豊富なjavaプログラマーで、C++を学んでいるところです。
さて、ちょっと初心者の悩みがあります。私はint型の配列変数xを持っています。
ユーザはメソッドBでxのサイズを入力しますが、私はメソッドAでxを使いたいのです。
void method A()
{
using int x [] blah blah blah
}
void method B()
{
int n;
cin >>n;
int x [n]; // How can I use this int x in method A without getting error: storage size x is unknown.
// Or the error 'x' was not declared in this scope.
}
EDIT: パラメータ渡しは、私が求めている解決策ではありません。
DOUBLE EDIT: ベクターオプションについては知っていますが、私のプログラムは時間的に厳しいのです。私は、ミリ秒単位でカウントされるアルゴリズムを作成しています。
ちなみに私はその方法を見つけました。
int x [] = {}
method B();
method A () { blah blah use x}
method B () {/*int*/ x [n]}
解決方法は?
もし、実際にベクトルではなく配列が必要で、その配列を実行時に動的にサイズ調整したい場合は、ヒープ上に配列を作成し(ポインタで格納)、終了時に解放する必要があります。
Javaから来た人は、C++にはガベージコレクションがないことを理解する必要があります。
new
(ヒープ上に作成した) オブジェクトをデストラクタでクリーンアップするには
delete
.
class foo
{
private:
int *array;
public:
foo() { array = NULL; };
~foo()
{
if (array != NULL)
delete [] array;
}
void createArray()
{
array = new int[5];
}
};
関連
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる