Article View: comp.os.msdos.djgpp
Article #2Re: Declaring arrays inside generic function
From: Pieter Kunst
Date: Tue, 28 Nov 1995 10:35
Date: Tue, 28 Nov 1995 10:35
47 lines
2274 bytes
2274 bytes
In article <Pine.A32.3.91.951127202934.29743A-100000@srv1.freenet.calgary.ab.ca> "Michael E. Wesolowski" <mewesolo@freenet.calgary.ab.ca> writes:
>I don't know if this is a problem with gcc, the DOS port of gcc, or
>something (i.e., not a bug) in the implementation that I don't know
>about. I'm using the DOS port of gcc (djgpp), v1.12m4. This is equivalent
>ot gcc 2.6.3, if I remember correctly.
>
>I have a generic function which has as one of its input parameters an int
>which identifies an array size. Within the function, I attempt to declare
>an array of int's:
>
>int item_count [array_size];
>
>where array_size is the input parameter. When I look at the array in the
>debugger (gdb) however, what i see is an array of int pointers (I think)
>- something like int (*) [60000] (the 60000 is approximate). If I
>explicitly declare the array as, for example, item_count [10], I get the
>expected array of 10, uninitialized ints. SO, what's the problem?
>
>If it's something in the ANSI standard, I'd appreciate the paragraph
>reference as well as a simple description of what's going on. Thanks.
>
If I understand you correctly, you're trying to do some sort of
dynamic allocation of an automatic array, e.g:
void myfunc (int size)
{
int i, item[size];
for (i=0; i<size; i++) item[i] = i;
}
I don't think this is supported by ANSI C.
To obtain what you want, you can use malloc():
void myfunc (int size)
{
int i, *item;
item = (int *)malloc(size*sizeof(int));
for (i=0; i<size; i++) item[i] = i;
free (item);
}
If you're programming in C++, you can use 'new' for this purpose.
Pieter Kunst (kunst@natlab.research.philips.com)
Technical Details
Message-ID:
<DIr1Fq.Fqz@natlab.research.philips.com>Path:
arc1-ca.pugleaf.net!phcoms4.seri.philips.nl!newssvr!kunstReferences:
<Pine.A32.3.91.951127202934.29743A-100000@srv1.freenet.calgary.ab.ca>Show Full Headers
Complete Article Headers
Newsgroups: comp.os.msdos.djgpp,comp.lang.c++ Path: arc1-ca.pugleaf.net!phcoms4.seri.philips.nl!newssvr!kunst From: kunst@natlab.research.philips.com (Pieter Kunst) Subject: Re: Declaring arrays inside generic function Message-ID: <DIr1Fq.Fqz@natlab.research.philips.com> Sender: news@natlab.research.philips.com (USENET News System) Organization: Philips Research Laboratories, Eindhoven, The Netherlands References: <Pine.A32.3.91.951127202934.29743A-100000@srv1.freenet.calgary.ab.ca> Date: Tue, 28 Nov 1995 10:35:50 GMT