Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Date: Wed, 25 Aug 2004 19:16:45 +0200 From: "Gerrit P. Haase" Reply-To: "Gerrit P. Haase" Organization: Esse keine toten Tiere Message-ID: <11845274424.20040825191645@familiehaase.de> To: Luke Stras CC: cygwin AT cygwin DOT com Subject: Re: Trouble with std::vector in g++ In-Reply-To: <20040825164918.GF9503@arrow.utias.utoronto.ca> References: <20040825164918 DOT GF9503 AT arrow DOT utias DOT utoronto DOT ca> MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit Luke wrote: > I am having some trouble with the std::vector class in g++ 3.3.3. If I > compile the following program and run it, it segfaults in the call to > push_back; reducing the array in Solution to 512*1024 makes the code run > OK. > If I compile it with g++ 3.2.1 under Linux, the program runs fine. > Is it just my misunderstanding of how the STL works, or is there a > compiler/library problm here? > vvv begin code vvv > #include > class Solution { > public: > char se[1024*1024]; > }; > class Element { > public: > Solution s; > }; > typedef std::vector element_list_t; > class Mesh { > public: > element_list_t elements; > }; > int > main() > { > Mesh *mesh = new Mesh; > Element el; > mesh->elements.push_back(el); > return 0; > } > ^^^ end code sample ^^^ > compile with: > $ g++ -Wall -o etest etest.cc > $ ./etest > Segmentation fault (core dumped) Increase the stack: g++ -Wall -Wl,--stack=8000000 -o etest etest.cc This works for me with gcc-3.4.1(tm). The default stack for Cygwin executables is 2MB which seems to be too small for your program. Gerrit -- =^..^= http://nyckelpiga.de/donate.html -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/