| 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 |