• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:new int[変数]で確保しても良いんですか?)

配列の確保方法について

このQ&Aのポイント
  • Javaで配列を動的に確保する方法についてです。
  • C言語とは異なり、Javaではnew int[変数]という形式で確保することができます。
  • 上記のプログラムはStringの配列からintの配列に変換するためのものです。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

問題ないです。 ちなみにC言語もC99からはできますよ。

newtgecko
質問者

お礼

ご回答ありがとうございます。 C言語でもできるようになっていうるとは知りませんでした。 ちなみに、このような配列の確保は「動的確保」とはいわないのですか?size変数に合わせて、自由に確保しているように思えるのですが・・・

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.4

>あぁ, 「C99 にそもそも new はない」ですけどね>#1. 配列の要素数指定に変数が使えるという話であって、newが使えるとかいう話はしてませんが。 質問も読む限り、配列の要素数の指定の仕方の話ですし。 >Visul C++ 2010を使用していますが、コンパイルする前に、「size」の下に波線が出てエラー(内容:式には定数値が必要です)となります。 VisualC++はC言語としてはC90止まりのようです。

newtgecko
質問者

お礼

>VisualC++はC言語としてはC90止まりのようです。 Micro Softが提供しているので、最新の規格に合わせているものだと思っていました。 Javaで確保できれるかどうかが問題だったので、Javaではできるようなので良かったです。VC2012もC90止まりなのですかね。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

本題ではないですが 「C言語では、このような書き方で確保することはできなかった」 とは, 具体的にはどのような書き方をしたのですか? あぁ, 「C99 にそもそも new はない」ですけどね>#1.

newtgecko
質問者

お礼

「このような書き方」とは、以下の様な書き方をしました。 int main(){   int size = 10;   int array[size]; } Visul C++ 2010を使用していますが、コンパイルする前に、「size」の下に波線が出てエラー(内容:式には定数値が必要です)となります。 ですので、動的確保のときはmalloc()などを使います。 最近はJava、C++を学んだので、Vector、vectorを使ってます。

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

プログラムの実行時に決定されるなら、動的 コンパイル時に決定されるなら、静的 変数化しているかどうかはあまり重要ではありません。

newtgecko
質問者

お礼

以前お世話になりました。 追加の質問への返答有難う御座います。 例えば、new int[乱数] の形ならどうでしょうか? いくら擬似乱数でも、コンパイル時に判断できないと思うので、これは「動的確保」になりますか? また、new int[ユーザが入力した値]なども、動的になりますか?

関連するQ&A

専門家に質問してみよう