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

c - ダブルスの配列をクリアするためのCの最良の方法

Cでは、配列内のすべての値を指定された値にするために、指定されたポインターをリセットするにはどうすればよいですか?forループを使用するのが最適ですか、それとも配列内のすべての値を0に設定するために使用できる関数がありますか。

私のコードは現在次のようなものです:

これは(私には)ハッキーに見えますが、どうすればこのコードを改善できますか?

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

c - realloc後の動的メモリストレージの問題-C

学校での課題の場合、構造体を使用して、無限の量の行列に対して無限の量のポイントを格納できる行列を作成する必要があります。(理論上の無限)

割り当てには、callocとreallocを使用することにしました。マトリックスのサイズは次のとおりです。ポイントの制限に達するたびにサイズが2倍になります(つまり、1から始まり、2、4というように続きます)。また、マトリックスが追加されるたびにサイズが2倍になります。

これが私の問題です。最初の行列が追加され、2番目の行列の名前とポイントが追加されると、次のようになります。

B???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Bは私が欲しい部分です(後でstrcmpを使用するので)が、?マークはそこにあるはずではありません。(明らかに)

なぜそれが正確にこれを行っているのかわかりません。コードはモジュール式であるため、コードの一部を取得して、これがどのように行われているのかを正確に示すことは簡単ではありません。

注:次の方法でマトリックスのポイントにアクセスできます:(MyMatrix[1].points[0].x_cord;これは単なる例です)

問題を引き起こすサンプルコード:

構造体:

マトリックス関数の設定:

行列関数の成長:

行列を一度大きくした後にこの問題を出力する行列関数を追加します。

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

c - TCHAR の calloc 配列の長さを決定します (文字列の長さではありません)

私はこのコードを持っています:

dwRes は常に 8 で、もちろん _tcslen(sRes) は常に 0 です。

16384を探しています。

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

c - Cのポインターを持つ構造体を使用したCalloc

calloc 要求メモリが使用され、すべてのビットに 0 が書き込まれ、それへのポインタが返されることはわかっています。

私の質問は: ポインターを含む構造体で calloc を使用する場合、それらのポインターは NULL 値を持ちますか、それとも NULL を指すように設定する必要がありますか?

基本的に、構造体 a で calloc を使用した後、name と p は NULL を指しますか?

ありがとう!

0 投票する
6 に答える
243408 参照

c++ - C++構造体を初期化する適切な方法

このコードには、POD(Plain Old Datastructure)構造体が含まれています(これは、最初に初期化する必要がある他の構造体とPOD変数を含む基本的なc ++構造体です)。

私が読んだものに基づいて、それは次のようです:

次のように、すべての値をゼロに初期化する必要があります。

ただし、構造体が2番目の方法で初期化されると、Valgrindは、これらの変数が使用されると、後で「条件付きジャンプまたは移動は初期化されていない値に依存する」と文句を言います。私の理解はここで欠陥がありますか、それともValgrindは誤検知を投げていますか?

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

c - 既に割り当てられたメモリ内で始まるポインタを提供する Calloc?

ある種のポインターの衝突が発生しています。

基本的に、私が行う1つの機能では、

それからすぐに、私が行うサブ機能で、

最初のアドレス + 28 は 0x0..d2C です。

何が起きてる?

ポインター値は、gdb ではなく、printf からのものです。

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

calloc - 関数パラメーターの戻り値の calloc

私のコードは、自分のコンピューターと他のテスト VM では正常に動作しますが、顧客のコンピューターでは動作が未定義です。_tmain の MessageBox で [OK] を押した後、コンパイルされた exe が CPU を 100% 使用し、爆発することがあります。

free最後を削除しようとしましたが、 sTemp=NULL;afterfreeを追加しましたが、同じ問題が発生しています。

ありがとう!

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

c - メモリを解放する最良の方法は何ですか?

私はANSI Cに取り組んでいます。

charの配列で作成された文字列オブジェクトがあります..オブジェクトがメモリリークを起こすと思います..プログラムを約5分間(おそらく10000回の繰り返し)実行すると、使用メモリがどんどん大きくなります..

free および delete 関数を使用して、オブジェクトの使用済みメモリを解放しようとしました。ただし、削除は有効な機能ではありません。反対側では、フリーが最初にうまく実行されているように見えます。しかし、私はfree():invalid pointer..

どうすればこれを修正できますか? 私はそれを別の方法で行うことができますか?


ここに私のコードの一部があります..

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

ios - NSThread はメインスレッドと同じメモリ権限を持っていますか?

非常に長いiOSアプリケーションのフェーズを管理するために使用NSOperationQueueしているため、非同期で管理したいと考えています。そのフェーズでは、calloc関数を直接使用して、C で大きな配列を割り当てます。大きなとは、1024x256 の 2 次元配列の float などを意味します。

計算中にアプリがロックアップするよりもすべてがメインスレッドに存在する場合、すべてがうまくいきますが、代わりに重い部分をに移動すると、NSInvocationOperation多くの奇妙な結果が得られ、デバッガーを使用すると、コンソールに奇妙なメッセージが表示されることがあります

現在、プログラムに使用できるメモリがありません: malloc を呼び出すのは安全ではありません

そのため、操作キューによって管理されるスレッドにメインスレッドと比較していくつかの異なる制限があるかどうか、またこの問題を回避するにはどうすればよいかを考えていました。

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

c - セグメンテーション違反を引き起こす Calloc

これが私のコードです:

その意図は、(char *) に 2 桁の数字を割り当てることです。コードを実行すると、セグメンテーション違反が発生します。valgrind の outout は -