troubleshooting Question

How to free memory allocate by SafeArrayCreate?

Avatar of gdzdongdong
gdzdongdong asked on
System Programming
1 Comment1 Solution620 ViewsLast Modified:
There is a sample in MSDN.

HRESULT PASCAL __export CPoly::EnumPoints(IEnumVARIANT ** ppenum)
   unsigned int i;
   HRESULT hresult;
   VARIANT var;
   SAFEARRAY * psa;
   CEnumPoint * penum;
   POINTLINK * ppointlink;
   SAFEARRAYBOUND rgsabound[1];
   rgsabound[0].lLbound = 0;
   rgsabound[0].cElements = m_cPoints;
   psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
   if(psa == NULL){hresult = ReportResult(0, E_OUTOFMEMORY, 0, 0);
      goto LError0}

   // Code omitted here for brevity.

   return hresult;

How to free "psa"'s memory? The system will free "psa" automatic?
Thanks for u help!
Roshan Davis

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 1 Comment.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros