stack problem
Ellen De Beuckeleer
ellen.debeuckeleer at incgeo.be
Tue Jul 12 14:48:15 BST 2005
I thought it might be a good idea to summarise this entry:
1. I tried to enlarge the stack by doing one of the following, but it
didn't work:
- "-mmax-stack-frame=10000000" in CXXFLAGS. It doesn't work. Reason:
"Maybe something like -mmax-stack-frame exists on obsolete targets, but
for the common architectures it is long gone."
- ulimit -s unlimited in shell or in .bashrc: the problem remains.
ulimit doesn't seem to have any effect??? no idea why :(
my conclusion: the stack is just to small and difficult (?) to enlarge.
So, better be safe than sorry:
2. use the heap!
like indicated below. Problem solved (although minor changes had to be
done...I'll face the consequences ;) )
Thanx for all your tips!
Ellen
ps: Does anyone know a good book/report/website/.... to learn more about
handling large data?
Ellen De Beuckeleer wrote:
> I will certainly try this! Thanx.
>
> Reiner Beck wrote:
>
>> Ellen,
>>
>> trying to increase the stack size is the wrong solution for your
>> problem. You should definitely try to reduce the size of your class,
>> as was suggested in an earlier mail. Just try to imagine what happens
>> if you copy the class over the stack (e.g. a "push_back()" in a STL
>> vector) - looming disaster. And more pitfalls to discover ...
>>
>> Try to allocate the memory in the heap - the change in your code is
>> not that big (even if you are supposed to change as little as
>> possible: the change will be a big improvement):
>>
>> Example:
>> <code>
>> class MyClass
>> {
>> public:
>> MyClass() :
>> myArray(NULL)
>> {
>> myArray = new int[myconst];
>> if (myArray == NULL) // check if you got the memory
>> {
>> ::exit(1); // or do something else
>> }
>> }
>>
>> ~MyClass()
>> {
>> delete [] myArray; // release the memory
>> }
>>
>> private:
>> int* myArray;
>>
>> };
>> </code>
>>
>> HTH
>> Reiner
>>
>>> Hi,
>>>
>>> I use some extremely large arrays like : int myArray[myconst] and
>>> myconst can be eg. 1000000. My total amount of space required for an
>>> instance of the class is about 26,6 MB. I am reusing code which I
>>> have not written myself and I am not supposed to change to much.
>>>
>>> Ellen
>>>
>>
>> -
>> to unsubscribe from this list send an email to
>> kdevelop-request at kdevelop.org with the following body:
>> unsubscribe »your-email-address«
>>
>>
>
> -
> to unsubscribe from this list send an email to
> kdevelop-request at kdevelop.org with the following body:
> unsubscribe »your-email-address«
>
>
-
to unsubscribe from this list send an email to kdevelop-request at kdevelop.org with the following body:
unsubscribe »your-email-address«
More information about the KDevelop
mailing list