問題タブ [free]

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

c++ - C ++でのchar *の割り当てと解放

みなさん、ヒープ破損エラーが発生しています。わかりません。

上記のコードは、_gcvt_s と pushFont() で c ポインターを使用する唯一の時間です。これは、char * を最初のパラメーターとして単純に受け入れ、テキストを画面に表示します。それ以外はcを使用しません。メイン ループの後で c を解放しようとすると (そうすべきだと思います)、Visual Studio がヒープでエラーを取得した (ヒープの破損) というエラーが表示されます。

pushFont への呼び出しをコメントアウトしても、まだエラーが発生します。

文字 (ヒープに割り当てた 1 バイト) を解放するとヒープが破損する理由を誰かに説明してもらえますか?

最後に、私のメイン ループは多くのことを行います。バディと私は WinSocket でピンポン ゲームを作成しています。本体の残りの部分はゲームのループです。投稿する必要があるとは思いませんでしたが、必要に応じてメインループ全体で投稿を更新しますが、malloc() と free() の理解が不十分だと思います。

皆さんありがとう、

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

c - C でメモリを解放中にエラーが発生しました

ポインタとメモリの割り当てを練習する問題を書きました。

ただし、メモリを解放するとスタック ダンプが発生します。正しい場所で解放していますか? プログラムを安全でなくする可能性のある問題は他にありますか?

0 投票する
23 に答える
111459 参照

c - 解放後に変数をNULLに設定

私の会社には、メモリを解放した後、変数をにリセットするというコーディング規則がありますNULL。例えば ​​...

上記のような場合、に設定しNULLても意味がないと思います。それとも私は何かが足りないのですか?

そのような場合に意味がない場合は、「品質チーム」に相談して、このコーディングルールを削除します。ご意見をお聞かせください。

0 投票する
7 に答える
6361 参照

c - C のループに malloc/free が現れるとセグメンテーション違反

基本的に次のようなプログラムがあります。

これは単なる骨格ですが、うまくいけば十分な画像が得られます. A とにかく、通常は正常に動作しますが、n1、n2 の一部の値では、free(cplptr) がセグメンテーション違反を引き起こすようです。これは 1 回だけ呼び出され、cplptr への malloc() 呼び出しの後、cplptr の対応する free() の前にアドレスをチェックします。

アドレスが一致しているということは、free() が解放すべきものを解放しているということですよね?? gdb は、プログラムが受信したシグナル SIGSEGV、セグメンテーション違反を示します。0xb7ce179b in ?? () /lib/tls/i686/cmov/libc.so.6 およびステップから 現在の関数の境界が見つかりません

セグメンテーション違反を回避するようなものを実装する別の方法はありますか?

あなたの提案をありがとう!何が起こっているのか分かりますか??

0 投票する
8 に答える
1285 参照

c++ - C++ 動的メモリの詳細

私は C と Java のプログラマーなので、メモリ割り当てと OOP は私にとって目新しいものではありません。しかし、オブジェクトの C++ 実装でメモリ リークを正確に回避する方法についてはわかりません。すなわち:

s2新しい文字列オブジェクトがあるため、次の方法で解放する必要があります。

右?

さらに、戻り値の型がポインターまたは参照ではないにもかかわらず、関数によって返される (新しい) オブジェクトのアドレスを削除する必要があると仮定するのは正しいですか? ヒープ上に存在するオブジェクトを解放する必要があるときにポインターとして返されないのは奇妙に思えます。

0 投票する
7 に答える
1683 参照

c - ポインタを解放した後に間接参照すると、異なる結果が得られるのはなぜですか?

C(およびDebian GNU /LinuxではGCC4.3.3)のメモリ管理について質問があります。

K&RによるCプログラミング言語の本(7.8.5章)によると、ポインタを解放してから逆参照すると、エラーになります。しかし、以下に貼り付けたソースのように、コンパイラ(?)が明確に定義された原則に従って動作しているように見えることがあることに気付いたので、疑問があります。

動的に割り当てられた配列を返す方法を示す、このような簡単なプログラムがあります。

いくつかの引数を使用してコンパイルしようとすると、-ansi -Wall -pedantic-errorsエラーや警告は発生しません。だけでなく、また、正常に動作します。

*(p + 4)は8、* xは0です。なぜこれが発生するのですか?*(p + 4)が8の場合、x配列の最初の要素は6なので、* xを6にすべきではありませんか?

呼び出しの順序をfreeに変更しようとすると、別の奇妙なことが起こります。例えば:

実際、この場合、(私のマシンでの)出力は次のようになります。

xポインターが実際に「解放」されているのに、pポインターが「異なって」解放されているのはなぜですか?わかりました。メモリを解放した後、ポインタをNULLを指すようにする必要があることはわかっていますが、興味があったのは:P

0 投票する
13 に答える
171685 参照

c++ - malloc() と free() はどのように機能しますか?

malloc仕組みやfree働き方を知りたい

可能であれば、答えがメモリレベルで詳細に記載されている場合は、本当に感謝しています。

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

c++ - プロジェクトを必要とせずに無料のSVNリポジトリサーバー

C++ファイルをホストするための「プロジェクト」が必要ないサーバーをホストしている無料のSubversionリポジトリがあるかどうかを知りたいです。

実際のプロジェクトはありませんが、C++をSVNリポジトリに保存したいと思います。C ++ファイルをアップロードできるOpenSVNのようなものを探していますが、プロジェクトが必要です。

プロジェクトではなく、アカウントにファイルをアップロードできるSubversionホスティングサービスをお勧めしますか?何かのようなもの:http://www.test-svn.com/~nathanpc/

0 投票する
14 に答える
882 参照

c++ - C ++で誤ってdeleteとfreeを交換可能に使用することを防ぐにはどうすればよいですか?

C ++で互換的に使用deleteできるのはいつですか?free

私の懸念は次のとおりです。/と/の使用に誤った取り違えがあるとしましょう(/は言うまでmallocfreeあり newませんdelete)。しかし、同じことをします。 偶然にも、これはテストでは捕らえられません。後でこれは本番環境でのクラッシュにつながる可能性があります。new[]delete[]deletefree

これを防ぐために、どうすればある種のチェックを実施できますか?2つが混同された場合、警告できますか?コンパイル時でない場合は、実行時にコードインストルメンテーションを実行する可能性がありますか?これにどのようにアプローチしますか?

この質問の目的は、使用法の不注意による混同を回避する方法を見つけることです。

0 投票する
13 に答える
249 参照

c - 自由質問

これはcで大丈夫ですか?