X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-3.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org MIME-Version: 1.0 In-Reply-To: <1358135756673-95377.post@n5.nabble.com> References: <1358135756673-95377 DOT post AT n5 DOT nabble DOT com> Date: Sun, 13 Jan 2013 20:52:30 -0800 Message-ID: Subject: Re: Using the free(*ptr) routine and getting an exception, "Exception: STATUS_ACCESS_VIOLATION" From: Dan Kegel To: cygwin AT cygwin DOT com Cc: yzfury AT gmail DOT com Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Sun, Jan 13, 2013 at 7:55 PM, YZFury 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