LocalAlloc の使用法

提起された質問

malloc と virtualAlloc には慣れていますが、LocalAlloc を初めて見たときは戸惑いました。Baidu の朝、LocalAlloc、VirtualAlloc、HeapAlloc およびその他のメモリ割り当て関数の違いは何ですか。違いをまったく知りたくありません。使い方を知りたいだけですが、誰もコードを書いていないので、一目でわかる、なんて犬なんだ。

使用法

1. 関数プロトタイプ
HLOCAL LocalAlloc(
	UINT uFlags,		//一般设置为0x40,表示即将分配的内存被初始化为0
	SIZE_T uBytes		//分配内存的尺寸,根据你的需求来。
);
2.使用する

では、割り当てられたメモリをどのように使用するのでしょうか? ナンセンスではありません、コードを見てください

    HLOCAL m=LocalAlloc(LMEM_ZEROINIT, 0x200);	//0x40,就是LMEM_ZEROINIT
    memcpy(m, "hello", 5);
    printf("%s\n", (LPSTR)m);

ここに画像の説明を挿入

3. まとめ

このスペースに値を直接代入する方法があるかどうかはわかりません.たとえば、次のコードは間違っています.

	HLOCAL m=LocalAlloc(LMEM_ZEROINIT, 0x200);
	m="hahahah";	//会报错的

返された HLOCAL は、割り当てられた空間を指すポインター アドレスと見なすことができますが、*m を使用して参照することはできず、エラーが発生します。memset、memcpyなどの代入関数を使用し、今後何か違うことが見られた場合は引き続きフォローしてください

おすすめ

転載: blog.csdn.net/wangzhiyu12/article/details/127068050