2017-04-16 43 views
-2

C + +で無制限の配列を定義すると、正弦波の値を格納できる正弦波発生器を作ることができますか?C++で無制限の配列を作成

for (;;) 
{ 
    X[n]= sin(2*PI*f0/fs); 
} 
+3

保存に「無制限」のメモリがありますか? –

+0

良い古い 'std :: vector'を使うだけです。 –

+0

コンピュータの中には何も無制限です。 –

答えて

0

あなたがvectorを使用することができます(まだRAMの利用可能量によって制限される)「無制限」の配列をしたい場合。(下の編集を参照)

しかし、あなたのケースでは、代わりに大きな配列(たとえば、最大100万個の要素または画面の幅に等しい配列サイズ)を使用します。

編集:ここではは一例で

// Declare (and instantiate) a vector 
    std::vector<float> vec; 

    // Add elements to the vector 
    for(int i = 0; i < 100; i++) 
     vec.push_back(i*i); 

    // Read and print the elements in the vector 
    for(int i = 0; i < vec.size(); i++) 
     std::cout << "vec[" << i << "] = " << vec[i] << '\n'; 

    // Note: 
    std::cout << "Note that a vector is limited to " << vec.max_size() << " elements\n"; 

(あなたはおそらく唯一の値の限られた量が必要になりますので、私はまだ強く、単に大規模な配列を宣言お勧めしますし、あなたが必要になり、事前にどのように多くの価値を知っています配列の大きさがわからないときは、通常はベクトルが使用されます)。残念ながら、それは行うことはできません

+0

あなたはどのように私はこの大きな配列を正弦波の戻り値を格納するために定義することができます明確に助けることができます –

+0

ありがとう –

0

、あなたは、少なくとも4294967295

である、ULONG_MAXのようないくつかの大規模な定数を反復処理しようとすることができますしかし、最初に、あなたが十分なメモリを持っているか自問してみてください?

関連する問題