#include <windows.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
SIZE_T size = 128; // allocate 128 bytes
// Allocate movable, zero-initialized memory
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, size);
if (hMem == NULL) {
printf("GlobalAlloc failed\n");
return 1;
}
// Lock the memory to get a usable pointer
void* pMem = GlobalLock(hMem);
if (pMem == NULL) {
printf("GlobalLock failed\n");
GlobalFree(hMem);
return 1;
}
// Use the memory
strcpy_s((char*)pMem, size, "GlobalAlloc memory allocation");
printf("Stored string: %s\n", (char*)pMem);
// Unlock the memory
GlobalUnlock(hMem);
// Free the memory
if (GlobalFree(hMem) != NULL) {
printf("GlobalFree failed\n");
return 1;
}
return 0;
}
/*
run:
Stored string: GlobalAlloc memory allocation
*/