問題タブ [calloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2656 参照

gcc - calloc でのクラッシュ

私が書いたプログラムをデバッグしようとしています。私はそれを内側に走らせ、なんとか内側からgdbをキャッチしました。これがどのように発生するかについて、私は完全に混乱しています。それはバグの可能性がありますか??SIGABRTcalloc()gcclibc

詳細: 私のプログラムは OpenMP を使用しています。valgrindエラーなしでシングルスレッドモードで実行しました。mmap()私は 40GB のファイルをロードするためにも使用しますが、それが関連しているとは思えません。内部gdbでは、30 スレッドで実行しています。問題のあるものをキャッチするまで、いくつかの同一の実行(同じ入力とCL)が正しく終了しました。表面的には、これはある種の競合状態が存在する可能性があることを示唆しています。しかし、それは私のSIGABRT手に負えないところから来てcalloc()います。関連するgdb出力を次に示します。

関数my_calloc()は単なるラッパーですが、実際のcalloc()呼び出しは正当に見えるため、問題はそこにはありません。シェルで設定されている制限は次のとおりです。

プログラムはメモリ不足ではなく、256GB が利用可能なマシンで 41GB を使用しています。

g++ (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)flagsを使用してコンパイルしまし-g -O2 -DNDEBUG -mmmx -msse -msse2 -fopenmp -Wall -Wno-deprecated -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROSた。

編集:私が得る詳細なエラーメッセージは以下の通りです。切り捨てました。表示されていない行は、最後の 5 行に似ています。

Edit2 :「自明ではない」場所 (10/30) で停止しているすべてのスレッドのスレッド情報を追加しました。

0 投票する
3 に答える
2413 参照

arrays - Linux がヒープ メモリをクリアするのにかかる時間

私は疑問に思っていました...次のような配列を動的に割り当てたとします

または似たようなもの。また、n が非常に大きな数 (引数のために ~ 100 万) の場合、最後にそうしなかった場合、Linux がヒープ メモリをクリアするのにどれくらいの時間がかかりますfree()か? 私は、OS が動き回って、解放されていない未使用のヒープメモリ領域をクリアすることを知っています。ただし、それを行うのにかかる時間はOSに依存すると思います。

0 投票する
1 に答える
140 参照

c - 動的に割り当てられたメモリの読み取りと書き込み

次の部分を含むコードがあります。

そして、私はコードのこの部分の出力を持っています:

だから、ここに質問があります-'objects'変数がゼロ以外の場合、なぜ'objects + k'はゼロですか?私が作るとき:

私は次のような行を取得します:

何故ですか?私はすでにそのことを考えて脳を壊しました。

0 投票する
1 に答える
4226 参照

c - calloc は失敗し、NULL を返します

アプリケーションのモジュールの 1 つで、calloc() が失敗し、NULL が返されます。割り当てようとしているメモリの量は、9292 バイトの構造です。オペレーティング・システムは AIX 7.1 で、VIOS 2.2.1.3 を実行しています。

マシンには 2 GB 以上の RAM が搭載されており、メモリ不足の問題はないようです。問題のあるボックスと同じ構成を持つ他のボックスの 1 つで、同じアプリケーション モジュールが正常に動作しています。以下は、両方のボックスからのメモリの抜粋であり、同じです。

作業ボックス:

問題のあるボックス:

このボックスで 9292 バイトでも calloc() が失敗する理由が本当にわからないので、私にはわかりません。

ありがとう

0 投票する
2 に答える
191 参照

c - 型を 2 次元配列として返す

次のコードでは、コンパイル時に関数 fun2() の型が競合しているためにエラーが発生します。

ただし、このコードはそうではありません -

ただし、両方のプログラムが同じタスクを実行しています。コンパイルエラーの背後にある理由は何ですか?

0 投票する
4 に答える
115 参照

c - free()の失敗

このようにループでメモリを割り当てている場合

しばらくして、コードの後半で、次のようにメモリを解放しています。

free()メモリを解放せず、その結果、より多くのメモリが割り当てられる可能性はありますか?fileループごとに1回メモリを割り当てて解放しています。また、nptperf[file]通常は約1〜300万ポイント、そしてngridx = ngridy = 100

このプログラムはngridx = ngridy = 80以下で動作しますが、で失敗し100ます。

0 投票する
4 に答える
12517 参照

c - malloc と calloc を型キャストする必要がありますか

重複の可能性:
malloc の結果をキャストしますか?

malloccallocの型キャストの理由を見つけるためにグーグルで調べていました。しかし、mallocの型キャストはvoid ポインターを返すため不要であることがわかりましたが、 callocはどうですか。これはcallocも同じ理由です???

さて、最初のポイントに戻ると、 malloccallocの戻り値について。次に、両方が割り当てられたスペースを返していることがわかりました。だから、私はここで少し混乱しています。だから、私の質問は

  1. malloccallocの戻り値は何ですか

  2. malloccallocを型キャストする必要がありますか。なぜ ?

0 投票する
2 に答える
750 参照

c - 複数の入力にmalloc()を使用していますか?

了解しました。mallocまたはcalloc動的割り当てに使用できることは知っていますが、CIの初心者として、TC++の例のように複数の入力を入力するために割り当てたメモリの使用方法がわかりません。このコードがあります。

このように、コードでは、Helloを割り当てたメモリに配置します。これにより、さらに4つの文字スペースが残り、これらのスペースにもデータを追加する必要があります。

ユーザーが入力の数について尋ねられ、10または100と言うと、プログラムがデータを入力して保存し、そのデータを画面に出力するときに、このアイデアを実装したいと思います。

0 投票する
3 に答える
78 参照

c - mallocおよびその他の関連機能

'ArrayA'という名前の配列があり、intでいっぱいですが、条件が満たされるたびに、配列の最後にさらに5つのセルを追加したいと思います。どうすればいいですか?(インターネットはあまり役に立ちません)

0 投票する
2 に答える
171 参照

objective-c - ARC が有効な場合のリーク

C 配列を使用するとコードがリークするようですが、その理由がわかりません。

私はこれで呼び出しますLeakyClass

計器は、配列 1 に追加するために渡された各値を指していLeakyClassます。この例ではobject@"example"[NSURL URLWithString:exampleString]. Instruments も と の s を指していますcallocが、 で両方を解放します。_array1_array2dealloc

何か不足していますか?