問題タブ [malloc]
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 - void* から char** への無効な変換
Cコードをいじってからしばらく経ちました。
gcc を使用して Ubuntu で C コードをコンパイルすると、次のエラーが発生します。
コードをコンパイルするために使用しているコマンドは次のとおりです (これらのエラーが使用しているコンパイラが原因である場合は、それを解消する方法を教えてください):
エラー: 'void*' から 'char**' への変換が無効です</p>
39行目は次のとおりです。
シーケンスは次のように宣言されます。
seqNum は次のように宣言されます。
c - char 配列と char ポインター
recvを使用してソケット経由でデータを受信すると、次のように気づきました。
私は受け取ります
mesgx��
「mesg」は私が送信したもので、ランダムな文字が追加されています。
私が使用する場合
代わりに、私は受け取ります
メッセージ
したがって、文字列にランダムなものが追加されることはありません。代わりに char[5] を使用しても同様に機能することがわかりましたが、その理由はよくわかりません。malloc(4) は本当に 5 バイトを割り当て、5 番目は NUL ですか?
c++ - malloc()を使用して割り当てられたメモリブロックのサイズを取得するにはどうすればよいですか?
重複の可能性:
Cのポインターから配列のサイズを取得するにはどうすればよいですか?
プログラムでC++配列のサイズを決定する方法はありますか?そうでない場合は、なぜですか?
Cスタイルの関数から割り当てられたメモリのチャンクへのポインタを取得します。さて、このポインタが指す割り当てられたメモリブロックの大きさを知ることは、デバッグの目的で非常に興味深いでしょう。
盲目的にその境界を越えて例外を引き起こすことよりもエレガントなものはありますか?
よろしくお願いします、アンドレアス
編集:
WindowsではVC++2005を使用し、LinuxではGCC4.3を使用しています
EDIT2:
私は_msize
VC++2005を使用していますが、残念ながらデバッグモードで例外が発生します。
EDIT3:
上手。例外を除いて、上記の方法を試しましたが、機能します。少なくとも、デバッグを行っている間は、ライブラリの呼び出しが終了した直後に、バッファの境界を越えて実行されていることを確認しています。チャームのように機能します。
エレガントではなく、本番コードではまったく使用できません。
c++ - このコードで malloc は何をしていますか?
次のコードを説明していただけますか?
- ここで何を
malloc
していますか? - なぜ
num + 1
使用されるのですか?
c - C の malloc() 関数
誰でもこれを説明できますか?
C言語で連結リストにデータを入力するためのコードです。コードは完全ではありませんが、目的には十分だと思います。基本的にこれらの行のコーディングを説明してください:
と
c - C: void * 経由で戻る関数
Java から来て、次の戻り値を許可する Void の使用に混乱しています。
これは、割り当てられたメモリのチャックへのポインタを返していますか?
c - malloc を使用するたびに警告が表示されるのはなぜですか?
malloc
コードで使用する場合:
からこの警告が表示されgcc
ます:
c - Cでmallocを使用するときにサイズを指定するのはなぜですか?
次のコードを使用します。
この行malloc(2 * sizeof *p)
で、2 つの整数にスペースを割り当てていますよね?しかし、3 番目の位置に を追加しint
ても、正しく割り当てられ、取得可能になります。
私の質問は、なぜ使用時にサイズを指定するのmalloc
ですか?
c - 以下のメモリ割り当てに違いはありますか?
メモリを動的に割り当てるには 4 つの方法がありますが、4 つの方法に違いはありますか? 最初にこのように:
このように2番目:
3番目に次のように:
このように4番目:
そして、あなたはそれを知っているべきです、私はメソッド「exam」の外で変数「seq」を使用します。 上記のコードを説明してください、どうもありがとうございました。
c - malloc()で割り当てるスペースをどのように知っていますか?
私は完全にCの初心者です、私はC#から来ました。私はメモリ管理とmalloc()
機能について学びました。私もこのコードに出くわしました:
私が理解していないのは、これがどのくらいのスペースを割り当てているかですa_persons_name
。2文字(例:AB)または他の何かを割り当てていますか?
また、未割り当て領域で「幸運」になり、使用できる場合があることも知っていますmalloc
(これにより、データの破損やセグメンテーション違反が発生する可能性があります)。では、割り当てているスペースと必要なスペースをどのように知ることができますか?