大きな2D配列をゼロに初期化したい。 私はcallocでメモリを割り当てると、自動的にすべてのセルをゼロに初期化します。 単一のcalloc関数を使用して2D配列用のメモリを割り当てることは可能ですか? あなたが[]
演算子を使って、行列の要素にアクセスできるようにしたい場合は、まず行列の各列に格納されたデータへのポインタが含まれている中間構造を割り当てる必要がありますcallocを使用したメモリ割り当て
-5
A
答えて
-3
int nrows = 2000, ncolumns = 190;
int **a=calloc(nrows * ncolumns, sizeof(a));
printf("%d", a[0][0]);
1
ありがとう。
各行は、calloc()
を使用して割り当てられているため、ゼロになります。これはあなたが探しているものですか?
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int **a;
unsigned int num_rows = 2000;
unsigned int num_columns = 190;
a = calloc(num_rows, sizeof(*a));
if (a == NULL) {
/* TODO: Error handling. */
return -1;
}
for (unsigned int i = 0; i < num_rows; i++) {
a[i] = calloc(num_columns, sizeof(**a));
if (a[i] == NULL) {
/* TODO: Error handling. */
return -1;
}
}
printf("%d\n", a[0][0]);
/* TODO: Free calloc'd memory. */
return 0;
}
関連する問題
- 1. callocを使用してメモリを割り当てて解放する
- 2. Calloc()が以前に割り当てられたメモリを割り当てようとしています
- 3. cudaMallocを使用して割り当てられたメモリは `?? ?? ?
- 4. MapViewOfFileを使用した静的共有メモリの割り当て
- 5. unordered_mapを使用した場合のメモリ割り当て
- 6. deleteキーワードを使用したメモリの割り当て解除 -
- 7. strtok()関数を使用したときのメモリ割り当て
- 8. Cでメモリを割り当てるためのmalloc/callocより優れた実装はありますか?
- 9. メモリ割り当て
- 10. 割り当てメモリ
- 11. 割り当てメモリ
- 12. メモリ割り当て
- 13. メモリ割り当て
- 14. 割り当てメモリ**
- 15. ポインタを使用せずにポインタVSを使用したメモリ割り当て
- 16. プラットフォームのInvoke(C#)を使用したアンマネージコードのメモリの割り当てと割り当て解除
- 17. メモリ割り当てプロファイリング中にメモリ割り当てが増加し続ける
- 18. ビデオ用のGPUメモリ割り当て
- 19. Dalvikのメモリ割り当て
- 20. Magentoのメモリ割り当て
- 21. プロセスのメモリ割り当て
- 22. メモリ割り当てとループ
- 23. GtkTreeView treestoreメモリ割り当て
- 24. メモリの割り当て(C)
- 25. メモリ割り当て構造
- 26. iphoneのメモリ割り当て
- 27. MySqlメモリ割り当て
- 28. テーブルビューHeaderSectionメモリ割り当て
- 29. nodejsメモリ割り当てエラー
- 30. `getaddrinfo()`のメモリ割り当て
はい、あなたの質問は非常に不明です。なぜ質問するのですか?なぜそれはうまくいかなかったのですか? –
これを一度に行うことができるかどうかは、2D配列が何を意味するかによって決まる場合があります。あなたがしようとしていることの例を挙げてください。 – Evert
大きな2D配列をゼロに初期化するにはどうすればよいですか? (配列サイズは10^12です) –