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

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

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

Disclosure: My content contains affiliate links.

43,239 questions

56,142 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 Feb 12 by avibootz

Related questions

...