pointer confusion :(

Discussion in 'C++' started by mandatory, Feb 6, 2005.

  1. mandatory

    mandatory Guest


    im getting confused.

    I have a memory leak in a routine and found that problem.

    I have a routine:

    void* PopQueue ()
    void *item;

    //...pop the item

    return item;

    The item was created with HeapAlloc() in the Push() routine.

    In another segment of my program i have this:

    void thereisdata()
    MyqueueStruct *myitem;
    myItem = (myitem *) PopQueue();
    // process the data inside (this is working fine)
    HeapFree (GetProcessHeap(),0, myItem); // ERRROR !

    This raises an exception, and i can see that the memory isnt freed.

    What im wondering now is what im doing wrong ? cant i free a pointer that
    points to a memory location like the way i do it in PopQueue() ?

    Hope you can help me - its starting to annoy me.

    using WinXP.
    mandatory, Feb 6, 2005
    1. Advertisements

  2. No, we can't. With the little code you provided it's only clear that
    you're using some non-standard functions to allocate and free your
    memory. You need to post your question where these functions are on
    topic. I recommend comp.os.ms-windows.programmer.win32.
    Victor Bazarov, Feb 6, 2005
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.