後で、配列のサイズがわかる場合、変数はどのように定義すれば?

[戻る]
きた 2014/07/02(水) 16:21:07
恥ずかしいくらい、単純な質問です。

double  ddd[p];
と、定義したいのですが、
最初は、そのpの数がわからず、
コードが走っている途中で、
p = calloc(eee.length, sizeof(double));
なりでわかったとすると、
型宣言の部分は、dddの場合、どう記述すればいいのでしょうか?
何も定義しないと、
 ”定義されていない識別子です。”
とエラーが出るし、
double  ddd[];
などとやると、
”サイズを定義してください。”
と、やはり、エラーです。

きた 2014/07/02(水) 17:02:38
しかも
double  ddd[];
ここのところを、あくまで、仮ですが、
double  ddd[44100*5];
などと大きな数字の入れ込みをやってしまうと、
スタックオーバーフローが
出てしまいます。

しま 2014/07/02(水) 18:52:21
まず、 C の話なのか C++ の話なのか示してください。
開発環境や動作環境やについては必ず示してください。

対処の仕方が違ってきますから。


C だとすると、次の様に宣言出来るのではないですか?

double *ddd = null;

επιστημη 2014/07/02(水) 21:18:11
C++ならやり方はいくらもあるけども
要素数が決まるまで使えないんだから、
要素数Nが決まった時点で

std::vector<double> ddd(N);

しますね僕なら。

古いスレッドには追加発言できません。