| delorie.com/archives/browse.cgi | search |
| From: | "Elias Pschernig" <f DOT x DOT gruber-museum-arnsdorf AT magnet DOT at> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: What's the idea with ALLEGRO.H's zero-size arrays? |
| Date: | Mon, 1 Nov 1999 22:06:03 +0100 |
| Organization: | Telenor magnet GmbH |
| Message-ID: | <7vkvbs$r9q$1@orudios.magnet.at> |
| References: | <7vk0b0$92j$1 AT baker DOT cc DOT tut DOT fi> |
| NNTP-Posting-Host: | 195.170.72.29 |
| X-Trace: | orudios.magnet.at 941490364 27962 195.170.72.29 (1 Nov 1999 21:06:04 GMT) |
| X-Complaints-To: | abuse AT magnet DOT at |
| NNTP-Posting-Date: | 1 Nov 1999 21:06:04 GMT |
| X-Newsreader: | Microsoft Outlook Express 4.71.1712.3 |
| X-MimeOLE: | Produced By Microsoft MimeOLE V4.71.1712.3 |
| Lines: | 34 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
>Hi!
>
>I tried to compile my new program with '-pedantic' switch, but
>djgpp shows me following data....
>
>djgpp/include/allegro.h:948: warning: ANSI C++ forbids zero-size
array `line'
>djgpp/include/allegro.h:1498: warning: ANSI C++ forbids zero-size
array `dat'
>
>What's the idea with zero-size arrays?
They are used in structures with changeable size.
If you have
struct bitmap {
int w,h...
void *line[0]; // zero size array
};
,you can allocate a bitmap with x lines later with
a_bitmap=...malloc(sizeof(struct bitmap)+sizeof(void *)*x);
.Now the array has x elements really.
The idea is that you have only one call to malloc. Without the zero
size array, you'd have to store a pointer in the bitmap structure, and
do a second malloc to create the list of line pointers...
Elias Pschernig
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |