From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f849b,d275ffeffdf83655 X-Google-Attributes: gidf849b,public X-Google-Thread: 109fba,d275ffeffdf83655 X-Google-Attributes: gid109fba,public X-Google-Thread: 1108a1,d275ffeffdf83655 X-Google-Attributes: gid1108a1,public X-Google-Thread: f5d71,d275ffeffdf83655 X-Google-Attributes: gidf5d71,public X-Google-Thread: 146b77,d275ffeffdf83655 X-Google-Attributes: gid146b77,public X-Google-Thread: 101b33,d275ffeffdf83655 X-Google-Attributes: gid101b33,public X-Google-Thread: 115aec,d275ffeffdf83655 X-Google-Attributes: gid115aec,public X-Google-Thread: 103376,d275ffeffdf83655 X-Google-Attributes: gid103376,public From: johnb@invision.co.uk (John Birch) Subject: Re: Dynamic memory? (was Re: Ada vs C++ vs Java) Date: 1999/01/18 Message-ID: <36a34176.18473393@news.demon.co.uk>#1/1 X-Deja-AN: 433997791 X-NNTP-Posting-Host: invision.demon.co.uk:158.152.59.42 References: <369C1F31.AE5AF7EF@concentric.net> <369DDDC3.FDE09999@sea.ericsson.se> <369e309a.32671759@news.demon.co.uk> <369F0592.94F9DDDA@dresdner-bank.com> <77pnr4$ch3$1@newnews.global.net.uk> <36a3281a.11980677@news.demon.co.uk> <77vclp$rme@news3.euro.net> X-Complaints-To: abuse@demon.net X-Trace: news.demon.co.uk 916669246 nnrp-03:28726 NO-IDENT invision.demon.co.uk:158.152.59.42 Reply-To: johnb@invision.co.uk Newsgroups: comp.lang.ada,comp.lang.c++,comp.vxworks,comp.lang.java,comp.java.advocacy,comp.realtime,comp.arch.embedded,comp.object,comp.lang.java.programmer Date: 1999-01-18T00:00:00+00:00 List-Id: On 18 Jan 1999 13:24:09 GMT, "Martijn Lievaart" wrote: >>There is inherent dynamic memory allocation going on here, it is >>irrelevant whether it is satck or heap. I (the coder) did not >>explicitly allocate memory, the language (or rather the implementation >>of the language) did. >Well, you can take it to far! If you count this as dynamic memory >allocation, you cannot use any one function as it will dynamically allocate >a stackframe (hint: the "allocated memory" refered to above is also in the >stack frame). Gets kinda hard to write a C program without any function! What would you call it then? It's not statically allocated, it's allocated dynamically at run-time from the stack or the heap. It's certainly memory, so it seems reasonable to call this dynamically allocated memory. Now of course a function call involves the stack and results in dynamic memory allocation, BUT.... With no recursion, In C the stack size can never be larger the maximum of the total of the stack requirements of all of the functions defined. In other words, the worst case stack usage is if main called a function, which called a function, which called a function ....... ...... until all the functions in the program had been called. This value is easy to determine, indeed many embedded C compilers calculate it for you. If you know what the maximum stack size your program uses is, then you can guarantee, barring bugs, that your program will run on target machine with that amount (or more) of free memory. Now try telling me how to calculate a worst case C++ memory requirement. regards John B.