delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
X-SWARE-Spam-Status: | No, hits=2.4 required=5.0 tests=AWL,BAYES_05,FSL_RCVD_USER,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_YE |
X-Spam-Check-By: | sourceware.org |
Message-ID: | <8ef10a0d4a6912c0aa23bc33eebbe95d.squirrel@zeusw.org> |
Date: | Wed, 4 Jul 2012 11:45:00 +0200 |
Subject: | Differences between C++ 'new' operator and 'malloc()' (NOT a C/C++ question) |
From: | "Claude SIMON" <sc DOT cygwin DOT com AT zeusw DOT org> |
To: | cygwin AT cygwin DOT com |
Reply-To: | sc DOT cygwin DOT com AT zeusw DOT org |
User-Agent: | SquirrelMail/1.4.21 |
MIME-Version: | 1.0 |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Hello everybody ! I have some C++ code that I want to use in a native Java component compiled with Cygwin g++. I also use exactly the same C++ code in a command-line tool ('.exe' binary). When I compile the tool with Visual C++, it works. When I compile the tool with g++, it works. When I compile the component with Visual C++, it works. When I compile the component with g++... it crashes. With 'gdb', I found that the problem happens when calling the 'malloc' function (as soon as the function is called, NOT when the returned allocated memory is used). When I replace the 'malloc' by a the C++ 'new' operator, the component compiled with Cygwin g++ doesn't crash anymore. To summarize, having some code written in C++ : - used in a command line tool : - using 'malloc' : - compiled with Visual C++ : works. - compiled with Cygwin g++ : works. - used in a Java native component : - using 'malloc' : - compiled with Visual C++ : works. - compiled with Cygwin g++ : CRASHES. - using the C++ 'new' operator : - compiled with Visual C++ : works. - compiled with Cygwin g++ : works. I thought that the C++ 'new' operator calls the 'malloc' function, but this seems not to be the case. As I want to use 'malloc'-like functions rather than the C++ 'new' operator, I wonder which functions are used in the C++ 'new' operator to allocate memory (and naturally which functions are used in the C++ 'delete' operator to free the memory). If it can be of some use, the component/tool can be found at http://zeusw.org/intl/expp . The g++ version is 4.5.3. Thanks ! -- Claude SIMON (sc.CYGWIN;COM AT zeusw DOT org) (Sorry for my poor English ; I'm French) -- 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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |