問題タブ [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 に答える
2916 参照

c - 4GB の RAM を搭載したシステムで calloc が 1GB の割り当てに失敗するのはなぜですか?

calloc1 ギガバイトをわずかに超える 1 つの要素を呼び出す必要があります。この呼び出しは を返しNULL、errno をチェックするとメモリ不足エラーが明らかになります。ただし、テスト中、使用可能な仮想メモリは言うまでもなく、ほぼ 4 ギガバイトの空き RAM があります。

この問題を調査した後、なぜ失敗したかについて思いつくことができる唯一のことは、使用可能な連続したメモリcallocが十分にないということです。ただし、4Gb の使用可能なメモリがあれば、~= 1Gb の連続したメモリを使用するのは簡単なはずです。連続したメモリの可用性を確認する方法はありますか? これが問題である場合、メモリを「最適化」する簡単な方法はありますか?

それとも、これは割り当てられたメモリのブロックサイズと関係があるので、実際には利用可能なメモリよりも多くのメモリを割り当てようとしていますか? 失敗の原因を特定するためのオプションは何ですか? この大量のメモリを正常に割り当てるためのオプションは何ですか?

12Gb のメモリを搭載したネイティブ Windows システムを使用しています。次に、VM で実行して、VM に数ギガバイトのメモリを割り当て、仮想マシンが十分な連続メモリに非透過的にアクセスできるかどうかを確認します。今日それを完了したら、ここに結果を投稿します。

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

c - calloc(): 個々の値はパフォーマンスにとって重要ですか?

私は現在、パフォーマンスが重要な組み込みアプリケーションを C で作成しています。

現在、私は次のように多くの空のメモリを割り当てています: calloc(1, num_bytes)- ただし、num_bytes以前はmalloc.

calloc-alloc ファミリでサイズに 2 つの引数を取る唯一のメモリ割り当て関数であるという点でユニークなようです。これを行う正当な理由はありますか?異なる引数を指定すると、パフォーマンスに影響がありますか? この引数のレイアウトを選択した理由は何ですか?

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

c - free()関数はコアダンプエラーを出します

マージソート用の簡単なコードを書きましたが、次のエラーが発生しました。

これはコードです:

free(t)エラーは関数の行にあると思いますmerge。何らかの理由で、そのブロックは本来あるべき方法で解放されていません。どうすればこれを修正できますか?

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

c - C で動的メモリ内の配列の先頭を揃える

重複の可能性:
アラインされたメモリ管理?

私はこのように宣言している配列を持っています

int のサイズは 4 バイトですが、配列が 8 バイト境界で始まるようにしたいので、毎回 2 つの値を効率的にロードできます。別の方法や他にできることはありますか?

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

c++ - Qt Creator - 大容量メモリで calloc が失敗する

Qt Creator またはそのコンポーネントの 1 つに問題があります。

多くのメモリ (約 4 GB) を必要とするプログラムがあり、calloc を使用してメモリを割り当てています。(Qt フレームワークを使用せずに) mingw/gcc で C コードをコンパイルすると動作しますが、mingw/gcc ツールチェーンを使用して Qt Creator 内でコンパイルすると (C++ を使用して Qt フレームワークに埋め込まれた C コードを使用) 、calloc は null ポインターを返します。

すでに検索して見つけた qt-pro オプションQMAKE_LFLAGS += -Wl,--large-address-awareは、いくつかのケース (約 3.5GBytes) で機能しましたが、4GBytes を超えると、Qt ではなく gcc でコンパイルされた C コードでのみ機能します。

Qt Creator でコンパイルするときに calloc を使用して必要な量のメモリを割り当てるにはどうすればよいですか?

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

ios - ARCはcallocされたメモリを解放していますか?

私のコードで何か奇妙なことが起こっています。基本的には、iOSのリングバッファメモリにデータを転送し、その後メモリを読み取るネットワークストリームアプリケーションを実行しています。EXC_BAD_ACCESS不確定な量のデータを取得していました。だから私は有効 NSZombieEnabledにして設定しNSAutoreleaseFreedObjectCheckEnabledmalloc_error_breakエラーの原因を特定することができました。

MainClassはプロパティを持っています(これも強い参照で試されました、同じ動作)

@property(非アトミック、保持)RingBuffer * readBuffer;

RingBufferクラスimで、バッファサイズを次のように初期化します。

その後、pushメソッドを使用してリングバッファにデータを挿入します

プッシュコールを削除しても、アプリケーションはクラッシュしません。プッシュ呼び出しが呼び出されると、しばらくするとクラッシュします。時々私は得るalloc: *** error for object 0x1cad3404: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug...時々それはちょうどEXC_BAD_ACCESSです。

基本的に、私が理解していないのは、なぜこれが問題を引き起こしているのですか?ARCがcallocedメモリを解放した可能性はありますか?

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

c - 2Dアレイの動的メモリ割り当てがクラッシュする

重複の可能性:
Cで多次元配列を正しく設定、アクセス、解放するにはどうすればよいですか?

callocを使用して2D配列にメモリを動的に割り当てようとしています。列は2に固定されているため、動的な行のみです。

これが私が試していることです:

しかし、問題は、配列にアクセスしているときにプログラムがクラッシュすることです。MinGWGCCでEclipseを使用しています。

これが私の最初の投稿なので、ここにさらにデータを入れる必要があるかどうか、またはこれに対処する方法を教えてください。

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

c - 構造体の柔軟な mpz_t 配列

私はこのような構造体を持っています:

これは通常の柔軟な配列なので、malloc を使用してサイズを設定できるはずです。

しかし、これを使用しようとすると、セグメンテーション違反が発生します。また、mpz_array_init の不適切な使用に関する苦情も寄せられています。しかし、マヌラを見てきましたが、これを正しく行っているようです。

また、次のように構造体を使用しようとしました。

また、initArray関数を次のように変更しました。

これは segfault ではありませんが、コンパイル時に の不適切な使用について苦情を受けます。また、見たい出力と一緒に、出力に大量mpz_array_initのエラーが表示されます。malloc私のコードが間違っている場所を教えてもらえますか? 最初のバージョンで segfault が発生するのはなぜですか? 私は人々が推奨しているように見える方法でそれをやった. mpz_array_initまた、コンパイラが不適切に使用されていると文句を言うのはなぜ ですか?

これは、出力で得られる一種のエラーです。

PS gmpascalは私の実行可能ファイルの名前で、パスカル三角形の n 番目の行を計算します。

gcc-4.2これらのフラグを使用してPowermacでコンパイルしているPPS :

私がここに欠けているものはありますか?

0 投票する
0 に答える
158 参照

r - RパッケージのCファイルを使用してスタンドアロンCプログラムに実装しようとしています

最近、この R パッケージ ( http://cran.r-project.org/web/packages/energy/index.html ) をダウンロードし、正常にインストールして自分のシステムで実行し、距離相関を計算することができました。

問題は、R の for ループが永遠にかかることです。私は R の初心者です。ソースコードは、実際には C でいくつかのファイルに記述されており、R はそれを評価に使用します。srcパッケージ内のフォルダーにこれらの 2 つのファイルがutilities.cあり、dcov.cどちらに実装する必要がある機能があります。

dcov.cwhich uses rmath.handどうやらコンパイルしようとしr.hたところ、プログラムで使用されている Calloc/Free に関するエラーが大量に発生しました。

Cプログラムをコンパイルする方法はありますか?

0 投票する
0 に答える
265 参照

ios - ios calloc で割り当てられた 2 次元メモリを解放する正しい方法

私はiOSアプリを持っています。2D メモリを割り当ててから、free 関数を使用して割り当てを解除します。これは解放への正しい方法ですか?最近、無料のステートメントを指してクラッシュしました。buf[i] をループで解放する必要がありますか?

ここにエラーメッセージがあります