2017-01-10 7 views
-2

Cで大きな2D(50,000×50,000)の文字配列を宣言したいと思いますか?そしてもしそうなら、どのように?Cで大きな2Dのchar配列を宣言するには?

+1

「動的メモリ割り当て」について読んでください。 –

+0

[このリンクをチェック](http://www.geeksforgeeks.org/dynamically-allocate-2d-array-c/) – 0xtvarun

+0

1.動的メモリ割り当てを使用するか、2.配列をグローバルとして宣言します。このような大きなメモリがスタック上で動作する可能性は低いです。 –

答えて

0
int **array; 
int i; 

array = (int**)malloc(sizeof(int*) * 50000)// <stdlib.h> for malloc 

for (i = 0; i < 50000; i++) 
    array[i] = (int*)malloc(sizeof(int) * 50000); 

次に、要素にはarray[i][j]という名前でアクセスできます。

+6

[Cでmalloc()の戻り値のキャストを省略してください(http://stackoverflow.com/questions/605845/do-i-cast-the-result-of -malloc)。また、50,001ヒープ割り当てはほとんど最適ではないか、非常に良いです。これは、2を行うために簡単に単純化することができます。小さな作業では、1つの割り当てだけを行うことができます。 – unwind

+1

少なくとも、十分に広いです。正確には、sizeof intです。 OPは単なる 'char'配列を要求しました。 – usr2564301

+1

質問が 'char'についてのときに' int'の配列を作るのはなぜですか? –

関連する問題