Mail Archives: djgpp/1999/06/22/16:25:32
| From: | Martin Ambuhl <mambuhl AT earthlink DOT net>
|
| Newsgroups: | comp.os.msdos.djgpp
|
| Subject: | Re: Question: allocation
|
| Date: | Tue, 22 Jun 1999 14:48:36 -0400
|
| References: | <7km7cs$sc$1 AT nslave1 DOT tin DOT it>
|
| X-Posted-Path-Was: | not-for-mail
|
| X-Accept-Language: | en
|
| X-ELN-Date: | 22 Jun 1999 18:47:17 GMT
|
| X-ELN-Insert-Date: | Tue Jun 22 12:45:33 1999
|
| Organization: | Nocturnal Aviation
|
| Lines: | 51
|
| Mime-Version: | 1.0
|
| NNTP-Posting-Host: | 1cust85.tnt11.nyc3.da.uu.net
|
| Message-ID: | <376FDA84.548CC50C@earthlink.net>
|
| X-Mailer: | Mozilla 4.6 [en] (Win95; U)
|
| To: | djgpp AT delorie DOT com
|
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
| Reply-To: | djgpp AT delorie DOT com
|
Marco Fabiani wrote:
>
> I've a little question:
>
> i'f i declare:
>
> int a[10];
> int b[10];
>
> int main()
> {
> int c[10];
> int d[10];
>
> /* ecc.ecc. */
> return 0;
> }
>
> where a, b, c, d goes?
> c and d should go on stack, that in Intel-based machines means c > d (c is
> allocated at an upper address than d), but a and b?? Does djgpp use a data
> segment for global variables (thus b > a) or system stack (thus a > b)?
> And, is it safe to assume that a and b are allocated consecutively in
> memory?
As soon as you start thinking in this kind of machine-specific way, you already
should hear warning bells go off. Suppose you simply have
#define SEMISIZE 10
int a[2*SEMISIZE];
int main(void)
{
int c[2*SEMISIZE], *b, *d;
b = a + SEMISIZE;
d = c + SEMISIZE;
/* usw. */
return 0;
}
There is a good chance that this sort of coding will get you where you want to
go.
--
Martin Ambuhl (mambuhl AT earthlink DOT net)
Ah! but it is something to have at least the
choice of nightmares. - Joseph Conrad
- Raw text -