Avatar billede nemezis_aalborg Nybegynder
08. marts 2004 - 19:30 Der er 5 kommentarer og
1 løsning

Visual C2466 error - zero sized arrays

Hej eksperter,

jeg er igang med et størrer internationalt project, hvor vi blandt andet er nødt til at oversætte et program fra gcc og Linux til Visual Studio .NET og Windows OS. I denne forbindelse er jeg løbet ind i et lille problem. I VS er det ikke tilladt at initialisere et array til nul, men det er det i Gcc...

eks:

std::list<Node> lists[0];
static int rargs16[] = {};

Desværre er opbygningen af programmet sådan, at hvis det ikke kan lade sig gøre er man mere eller mindre nødt til at starte for fra :(

Er der nogen, der kender et workaround/fix/compiler-trick?
Avatar billede driis Nybegynder
08. marts 2004 - 19:59 #1
Nu kender jeg ikke GCC specifikt, men jeg vil mene at en notation som:
std::list<Node> lists[0];
Blot opretter en pointer til en std::list<Node>. Derfor burde du kunne:
std::list<Node> * lists = 0;
Og få samme resultat.
Avatar billede nemezis_aalborg Nybegynder
08. marts 2004 - 20:05 #2
Det giver samme problem.. et array med størrelsen 0 :/
Avatar billede arne_v Ekspert
08. marts 2004 - 20:33 #3
zero size arrays er ikke tilladt i standard C.

Så det er et selvmål.

Men det hjælper selvfølgelig ikke synderligt nu.

VC++ understøtter ikke zero size arrays og det er der ikke noget at gøre ved.

Men hvis du forklarer hvordan I bruger de arrays, så kan vi muligvis foreslå
en workaround.
Avatar billede arne_v Ekspert
08. marts 2004 - 20:34 #4
Hvorfor compiler I iøvrigt ikke med GCC (mingw) på Windows ?
Avatar billede arne_v Ekspert
08. marts 2004 - 20:37 #5
Normalt bruges det som:

struct hdr {
  int a;
  int b;
  char c[0];
}

struct hdr *v;
// v peger på noget
v->c[100]

og det kan omkodes som:

struct hdr {
  int a;
  int b;
}

struct hdr *v;
// v peger på noget
((char *)(v+1))+100
Avatar billede nemezis_aalborg Nybegynder
11. marts 2004 - 12:29 #6
Fandt selv ud af det med en lille hjemme fixet array like container... ellers tak for svarene ;)

Og vi bruger ikke gcc-mingw fordi vi bruger visual studio :)) Derfor!

Ej, synes bare det er dejligt at have msdn at søge i, hvis der er noget man er i tvivl om, og så er det kode, som programmet skal integreres med skrevet til VS...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester