2016-06-12 7 views
-4

Iが導入さ値は次いで、配列X 1、2、3、0 1、2及び3を含んでおりますしている場合、それは例えば、0を読み取るまで、ユーザ入力から数字の文字列を読み取るプログラムを作成する必要が配列のサイズは3になります。挿入される値の数には制限がありません。サイズの配列を宣言することはできませんので、より多くのint値を保持できるように動的に配列のサイズを増やす方法があります彼らは読まれているように?サイズを知らずに配列を宣言するにはどうすればよいですか? C++

+0

:なぜ人々はこの質問をd​​ownvotingていますか?最も詳細なものではなく、具体的なものではありませんが、大きな問題があるとは言いません。 – jtbandes

+1

@jtbandesほとんどの人は、OP側からの研究努力(コードではない場合)を見たいと思っているでしょう。このトピックに関してはStack OverflowとGoogleの情報が十分にあります。 –

+0

私は "C++可変長配列"をgoogleすると、最初のいくつかの結果は実際にOPが望んでいないVLA(自然)に関するものです。あなたが探しているものがわからないなら、これを理解するのはちょっと難しいかもしれないことは理解できます*。 – jtbandes

答えて

6

std::vector可変長コレクション)を使用して要素を追加できます。必要に応じて自動的に再割り当てを管理します。例:

std::vector<int> values; 
values.push_back(0); 
values.push_back(1); 
... 
+0

はだからvalues.push_back使用することができる(1)。配列のサイズが大きくなっているのは正しいのですか? –

+0

'push_back'を使って値を挿入することができ、配列のサイズをまったく気にする必要はありません。挿入した要素を保持するために、必要に応じて自動的にメモリが割り当てられます。 – jtbandes

3

std::vectorを使用できます。それはあなたがpush_back要素として動的に成長します。

2

それは、動的メモリ割り当てチェック別の質問here

と呼ばれています。しかし、通常、私はvector

#include <vector> 

using namespace std; 
int main(){ 
    vector<int> v; 
    int x; 
    while(cin>>x && x != 0){ 
     v.push_back(x); 
    } 
} 

あなたはvectorクラスは唯一の動的なメモリ割り当てを実装することで、存在していることに注意してください使用すると思います。興味があるだけそれはあなたのためにそこだとあなたは、割り当てられたメモリを確保し、破壊するようなすべてのハードワークをする必要はありません...

関連する問題