問題タブ [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.
c - memcpy() は realloc() を使用しますか?
このコードは、文字列「abc...xyz」全体を出力します。しかし、「buff」にはその文字列を保持するのに十分なメモリがありません。memcpy() はどのように機能しますか? realloc() を使用しますか?
c - メモリ割り当て
構造体の数値にメモリを割り当てるにはどうすればよいですか?
c - 構造体の配列を再割り当てします
ファイルとの間で読み込んだり、ユーザーが入力したりする構造体の配列 (実際には 2 つの構造体の配列ですが、簡単にするために 1 つ含まれています) のメモリを動的に再割り当てしようとしています。
...メイン()で:
次に、必要に応じて関数呼び出しを使用して配列を増やしようとしています。
残念ながら、再割り当ては機能しません。どちらの構造体もインスタンスあたり約 200 バイトしかなく、初期サイズを 10 に設定すると問題なく動作するため、realloc を使用しようとしている方法に問題があるはずです。
システムは Win 7 64 で、4GB の Core i5 で、Quincy (MinGW GUI) を実行しています。
c - 構造体の配列で realloc を使用する
私はこれについて何時間も頭を悩ませてきました。これは、テキスト ファイルから構造体にデータを読み取ります (各行には 4 つの文字列があり、各行は新しい学生を表します)。realloc でセグ フォールトが発生しています (終わり近く)。ポインターが malloc/realloc とどのように相互作用しているかを理解していない疑いがあります。
このセグフォルトの原因は何ですか?
前もって感謝します、
ガス
c - 標準 C ライブラリに、データをコピーしない realloc() のような関数がないのはなぜですか?
たとえば、次のような関数が必要です。
ご覧のとおり、関数 realloc() でバッファーのサイズを拡張したいだけですが、C ライブラリの realloc() は古いアドレスからデータをコピーする可能性があります。それで、私が望むようなライブラリに関数はありますか?
c - C-動的配列
n個の整数の長さの整数のリストを含むファイルをループしながら、fscanf()で配列をフィードしようとしています。mallocおよび/または潜在的にreallocを使用する必要があるようです。mallocコマンドにはかなりの実行時間がかかるため、割り当てを超過するのが最善だと聞きました。誰かがこの目的を達成するための構成要素を理解するのを手伝ってくれませんか?
免責事項:私はCを初めて使用します。
c - realloc() 使用時のエラー
realloc()
いくつかの配列を動的にサイズ変更するために使用しています。私は次のようなコードをたくさん書いていたからです:
次のようなことをしてコードを短くしようと思いました (ばかげた考え):
多くの行を節約したり、コードを読みやすくしたりしないため、これはばかげていますが、期待どおりに機能しない理由を知りたいです。GetSpace()
単一のオブジェクトに対してのみ使用すると、正常に機能します。関数を呼び出すオブジェクトを初期化せずにコードを実行すると、問題なく実行されますが、オブジェクトを呼び出してからGetSpace()
データを入れてからGetSpace()
別のオブジェクトを呼び出すと、次のようなメッセージでスタック トレースが表示されます。
0x00007fff05d96790
サイズ変更前の 2 番目の配列/オブジェクトのアドレスです。なぜこれが起こるのですか?
c - Cを使用してファイルから情報を動的に保存する
私はCに不慣れで、いくつかのことを学ぼうとしています。私がやろうとしているのは、ファイルを読み込んで情報を保存することです。フォーマットはCSVとなるため、各文字を読み込み、数字かカンマかを判断し、リンクリストに格納する予定です。私が抱えている問題は、次の例のように1文字以上の数字を読み取ることです。
5,2,24,5
これが私がこれまでに得たコードであり、それは私が期待する出力を返さないだけです。これがコードで、出力はコードサンプルの下にあります。
そしてここに出力があります:
トークンの長さが1であると予想されるのに、なぜトークンの長さが「5」であり、5に続く奇妙な文字(「a#」で表される)であるのかわかりません。誰かが私がこれをもう少しよく理解するのを手伝ってもらえますか?
c - realloc を使用して割り当てられたメモリを縮小する
C の realloc 関数に関する簡単な質問: realloc を使用してポインターが指しているメモリ ブロックを縮小すると、「余分な」メモリは解放されますか? それとも、何らかの方法で手動で解放する必要がありますか?
たとえば、
メモリリークは発生しますか?
c - realloc() を何度も使用する
次のうちどれが好ましいか
またはこれ