Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,900 questions

51,831 answers

573 users

How to use the GlobalAlloc function using the Win32 API in C

1 Answer

0 votes
#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

*/

 



answered 5 hours ago by avibootz

Related questions

...