質問するログイン新規登録

回答編集履歴

1

追記1

2020/01/29 06:41

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -25,5 +25,33 @@
25
25
  C言語では確か、質問のようなコード(もちろん型名とかが抜けているとかのアレは修正したものとして)はいけるはずですが、C++では「**配列宣言時の要素数は定数でなければいけない**」だったはずです。
26
26
 
27
27
  なので constをつけて定数扱いにすればいけるはずです。
28
+ (一応paiza IOで試してみました。)
28
29
 
30
+ ----------------------------------
31
+ [追記1]
32
+
29
- (一応paiza IOてみました。)
33
+ 一応、標準入力等取得した後にでも可能ですよ
34
+ 実際、
35
+
36
+ ```C++
37
+ #include<iostream>
38
+
39
+ void func1( int size ){
40
+ const int max = size; // <= constをつけている
41
+ int arr[max] = {};
42
+ // 何らかの処理
43
+ return;
44
+ }
45
+
46
+ int main( void ){
47
+ int n;
48
+ std::cout << "n = " << std::flush;
49
+ cin >> n;
50
+ func1( n );
51
+ return 0;
52
+ }
53
+ ```
54
+
55
+ みたいな、呼び出した関数内で配列を定義したりするとかみたいな感じでやったりしますし。
56
+
57
+ ただ、他の方々もおっしゃっているように std::vectorを使うか、memsetを使うほうが楽かもしれません。