問題タブ [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 投票する
7 に答える
23373 参照

c - calloc v /smallocと時間効率

私は興味を持ってmallocとcallocのポストCの違いを読みました。コードでmallocを使用していますが、代わりにcallocを使用するとどのような違いがあるのか​​知りたいです。

mallocを使用した現在の(擬似)コード:

シナリオ1

mallocの代わりにcallocを使用すると、次のようになります。

シナリオ2

私は3つの質問があります:

  1. アレイが非常に大きい場合、どのシナリオがより効率的ですか?

  2. アレイが非常に大きい場合、どのシナリオがより時間効率が高くなりますか?

  3. どちらのシナリオでも、forループの任意の反復について、最初の要素から最後の要素まで順番に各配列を書き込んでいるという意味で、配列に書き込んでいます。重要な質問:シナリオ1のようにmallocを使用している場合、要素をゼロに初期化する必要がありますか?mallocで、配列z = [garbage1、garbage2、garbage3]があるとします。反復ごとに、要素を順番に書き込んでいます。つまり、最初の反復ではz = [some_result、garbage2、garbage3]を取得し、2番目の反復では最初の反復でz = [some_result、another_result、garbage3]を取得します。オンの場合、mallocの後にアレイを特に初期化する必要がありますか?

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

c++ - 2次元配列、Cでcallocを使用

charsのストレージラインにcharsの2D配列を作成しようとしています。例えば:

行は動的に発生する必要があるため、最初に必要な行数がわかりません。これが私が持っているコードです:

各行が200文字を超えることはできないことを私は知っています。「エラーC2059:構文エラー:'for'」などのエラーが発生し続けます。私が間違ったことについて何か考えはありますか?

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

c - Valgrindは「スタック割り当て」と言います、私は「ヒープ割り当て」と言います

valgrindでセグメンテーション違反を追跡しようとしています。valgrindから次のメッセージが表示されます。

ただし、問題のある行は次のとおりです。

何が得られますか?mallocまたはcallocへの呼び出しにはヒープスペースが割り当てられていると思いました。ここには他の変数は割り当てられていませんよね?私が見ていない別の割り当て(問題のあるスタック割り当て)が行われている可能性はありますか?

編集:私の現在の疑いは、スタックに割り当てられた配列です:double(stack)へのポインターを宣言し、double*を返す関数の結果をそれに割り当てます。次に、以前に割り当てられた場所に移動します。

memmove、memcpy、またはスタック変数を割り当てることができず、それが持続することを期待できますか?

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

c - calloc の呼び出し - メモリ リーク valgrind

次のコードは、NCURSESメニュー ライブラリの例です。コードの何が問題なのかはわかりませんが、valgrind はいくつかの問題を報告しています。何か案は...

ソースコード:

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

c - C - calloc() v. malloc()

Possible Duplicate:
c difference between malloc and calloc

Please explain the significance of this statement,

Another difference between the malloc() and calloc() functions is that the memory allocated by malloc( ) function contains garbage values, while memory allocated by calloc( ) function contains all zeros.

Source ('C' Programming, Salim Y. Amdani)

Thanks

0 投票する
5 に答える
572 参照

c - malloc()のバッファリングを実装しているオペレーティングシステムはありますか?

for / while/do内の多くのc/malloc()は多くの時間を消費する可能性があるため、オペレーティングシステムが高速malloc用にメモリをバッファリングするかどうか知りたいです。

私は、mallocの「貪欲な」ラッパーを作成することでmallocを高速化できるかどうかを考えてきました。たとえば、1MBのメモリを要求すると、最初のアロケータは10MBを割り当て、2番目、3番目、4番目などにmalloc関数を呼び出すと、最初に「通常の」方法で割り当てられたチャンクからメモリが返されます。もちろん、使用可能なメモリが十分にない場合は、新しい貪欲なメモリチャンクを割り当てる必要があります。

どういうわけか、誰かが以前にこれまたは同様のことをしたに違いないと思います。だから私の質問は単純です:これはメモリ割り当てプロセスを大幅にスピードアップするものですか?(はい、質問する前に試してみることができましたが、必要がなければ、そのようなことを書くのは怠惰です)

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

c - 構造体内の配列を初期化しています - C?

メモリ割り当ての問題があるようで、私の構造体に別の構造体の配列へのポインタがあるためだと思います。ただし、この配列を初期化していないため、方法がわかりません。

それが理にかなっており、あなたが助けてくれることを願っています!

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

c - Cでポインタ構造体へのポインタを初期化する方法は?

ノードである構造体と、これらのノードのリストである別の構造体があります。リスト構造体では、ノードの配列ですが、配列ではなく、サイズが整数のポインターへのポインターです。

'配列'ごとにMyDef*entryとNode*nextをNULLに設定するにはどうすればよいですか?

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

c - C で "MyDef * t[5]" の代わりに "MyDef ** t" を特定の長さに malloc する方法

次のような構造体は問題なく動作します。malloc(sizeof(mystruct))を呼び出した後にtを使用できます。

次のように、 MyDefの配列の長さを動的に設定できるようにしたい:

これを機能させるには、 malloc(sizeof(mystruct))に追加して何をする必要があるので、 TestStruct->t[3] = somethingを実行できますか? セグメンテーション違反が発生しています。

ありがとう!

私が盲目でない限り、セグフォルトを引き起こすコードで編集してください。これはこれまでの答えのようです

0 投票する
5 に答える
13177 参照

c - calloc への 2 つの引数

callocのような 1 つではなく 2 つの引数を取るのはなぜmallocですか?

具体的には、次の式の間に違いがない (またはある?) ため:

割り当てるバイトの総数を受け入れないのはなぜですか? このインターフェイスの背後にある理論的根拠は何ですか? そして、これが malloc に適用されないのはなぜですか?