Using the free(*ptr) routine and getting an exception, "Exception: STATUS_ACCESS_VIOLATION"
Dan Kegel
dank@kegel.com
Mon Jan 14 04:52:00 GMT 2013
On Sun, Jan 13, 2013 at 7:55 PM, YZFury <yzfury@gmail.com> wrote:
> int *ptr = malloc(sizeof(*ptr));
> int x = 87;
> ptr = &x;
> printf("%d", *ptr);
> free(ptr);//it goes wrong here
As you probably know, you can't call free() on a pointer
that didn't come from malloc(). ptr's first value came from malloc,
but you overwrote that with
ptr = &x;
Perhaps you meant
*ptr = x;
So you're a level of indirection off.
- Dan
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list