問題タブ [realloc]

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 投票する
3 に答える
6420 参照

c - Cで無制限の文字を読む方法

char*サイズを指定せずに無制限の文字を変数に読み込む方法は?

たとえば、従業員の住所を読みたいとしますが、これも複数行になる可能性があります。

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

c - 新しいブロックサイズが最初のブロックサイズよりも小さい場合は、reallocチェックを強制する必要がありますか?

この場合、reallocは失敗する可能性がありますか?

}

私の場合の出力は次のとおりです。

したがって、「a」は同じアドレスを指します。では、reallocチェックを強制する必要がありますか?

後で編集

  • WindowsXPでのMinGWコンパイラの使用。
  • Linuxのgccと同様の動作ですか?

後で編集2:この方法で確認しても大丈夫ですか?

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

c - 再割り当てし、新しいサイズが 0 の場合はどうなりますか? これは空きと同等ですか?

次のコードがあるとします。

戻り値:

この realloc は free と同等ですか?

注: WindowsXP で MinGW を使用しています。

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

c - recv()で使用されるバッファのrealloc()メモリ

ソケットからデータをrecv()してバッファーに格納する必要がありますが、ループ内にあるように、すべてのデータを確実に取得する必要があります。したがって、バッファのスペースが不足しないようにするために、reallocを使用してバッファに割り当てられたメモリのサイズを変更しようとしています。これまでのところ:

ただし、Valgrindが「valgrind:「不可能」が発生しました:」と不平を言っているため、これは正しく機能していないようです。これを適切に行う方法について何かアドバイスはありますか?

ありがとう、Hristo

更新...reallocを誤って使用していることに気付きました。改訂版は次のとおりです。

ただし、valgrindはまだ不平を言っています:

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

memory-management - reallocは、小さい(<500Kb)データブロックを割り当てている間、しばらくするとNULLを返します。記憶があります

やあ!

簡単な質問は、何が問題になる可能性があるかということです。

私のプログラムの全体的なメモリ使用量(タスクマネージャーによって表示される)は、実行中はほぼ常に(40分近く)同じであり、2G近くの空きメモリがあります。

win2003r2で実行されています。

メモリの割り当て/解放は十分に高いです-他のソフトウェアと対話し、そのデータを準備し、古い場合は削除する必要があります。データブロックの数は一定ではありません。

ありがとうございました!

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

c++ - C ++でキャストされたreallocにより、メモリリークが発生する

ここで見つけた関数を使用して、cURLを使用してWebページをメモリに保存しています。

次の行を見つけます。

呼び出しごとに数百バイトのメモリリークが発生しています。元のソースから行った唯一の実際の変更は、問題の行を(char *)にキャストすることです。これは、私のコンパイラ(gcc、g ++、特にac / c ++の問題の場合)ですが、gccもキャストされていない状態ではコンパイルされません。ステートメント)が主張しましたが、これがリークの原因であると思います。誰でも解明できますか?

ありがとう

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

c - 再割り当て中に lua から callin' c がクラッシュする

そのforループ内でクレイジーなエラーが発生しました

matr は多次元配列です: int **matr. 列と行のサイズを変更する必要があります。最初の行は列のサイズを変更し、for ループはすべての行のサイズを変更します。cでうまくいきました。現在、lua のライブラリに取り組んでいますが、ここでクラッシュします。コンパイルもうまくいきます。しかし、luaから呼び出すとクラッシュします

Cでそれを使用して正常に動作しているので、私にはまったくわかりません。

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

c++ - 奇妙な再割り当ての動作

私は楽しみのために配列構造を開発しています。テンプレート パラメーターによって一般化されたこの構造体は、起動時に指定された数のアイテムを事前に割り当てます。次に、「ビジー」なアイテムが使用可能なアイテムよりも多い場合、関数は内部バッファーを再割り当てします。テストコードは次のとおりです。

ご覧のとおり、最初に 100 個の整数ポインターを事前に割り当ててから、さらに 10 個のポインターを使用してそれらを再割り当てします。メイン関数では、for ループを実行して項目の整合性をチェックし、配列項目が期待どおりでない場合は、その値を出力して ... わかりますか? 次のメッセージがあります。

!!! 11 != 135121

実際、'11' であるべきインデックス 11 の項目は 135121 です !!!! :S

私のコードが正しくないかどうか教えてもらえますか?

ありがとう

: このように C と C++ を混在させるのは見苦しいことを私は完全に知っています。また、この構造を使用すると台無しになることも知っています。

これは int ポインタの単なるテストです。

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

java - 事前に作成されたクラスを使用せずにJavaで拡張可能な動的配列を作成する方法は?

ええ、それは宿題の質問なので、givemetehkodezplsthx! :)

とにかく、ここで私がしなければならないことは次のとおりです
。属性の中に別のクラスのオブジェクトの配列を持つクラスが必要です。私の意見では、これを行う適切な方法は、LinkedList、Vector などを使用することです。残念なことに、前回それを行ったとき、教授から火と硫黄をもらいました。彼の信念によれば、基本を理解せずに高度なものを使用していたからです。

次の明らかな解決策は、固定数の要素で配列を作成し、配列がいっぱいかどうかを確認する get および set にチェックを追加することです。いっぱいになると、新しいより大きな配列が作成され、古い配列のデータが新しい配列にコピーされ、新しい配列が呼び出し元に返されます。ほとんど空の場合、新しい小さな配列を作成し、古い配列から新しい配列にデータを移動します。私には、これは少しばかげているように見えます。私の宿題では、配列に 3 つ以上の要素が存在しない可能性がありますが、配列が埋められる頻度、追加された新しい要素の平均数についての統計を手動で計算せずに、スケーラブルなソリューションを作成したいと考えています。計算結果を使用して、新しい配列の要素数などを計算します。

ちなみに、配列の途中から要素を削除する必要はありません。

任意のヒント?

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

c - realloc - int を char に変換する

配列全体を反復処理して整数の配列を char に変換し、結果の文字列を ncurses の method に追加していますnew_itemreallocateなんらかの理由で、私は記憶の仕方で何か間違ったことをしているので、最初の列を次のように取得します。

-

**更新: これは修正されました。上記のコードを参照してください。