/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
[C] Initialisering af array af strings og ~
Fra : Bertel Lund Hansen


Dato : 08-10-02 11:39

Hej alle

Jeg har et problem. Jeg ønsker at initialisere et array med nogle
strings, og det er nemt nok. Samtidig er der visse af disse
strings der skal bruges i andre sammenhænge. Rent logisk (og i
Pascal) ville jeg gerne gøre sådan:

   const char index[] = "index.htm";
   char *filnavne[] =
    {index,"skraekeksempler.htm", "sammenskrevet.htm" }

Men det er jo ikke tilladt. Jeg benytter så en lidt anden
konstruktion:

   char *filnavne[] =
    {index,"skraekeksempler.htm", "sammenskrevet.htm" }
   char *index;

   void init (void) {
    index=filnavn[0];
   }

Det ser tilforladeligt ud, for 0 er nemt at huske. Men i det
rigtige program er der flere andre navne end lige index.htm der
skal bruges på samme måde. Og at medlemmer.htm er knyttet sammen
med 21 er ikke specielt indlysende. Hvis jeg retter i mit array,
går der kuk i systemet ('konstanterne' peger på forkerte
filnavne).

Jeg kan også godt forestille mig det omvendte:

   const char index[] = "index.htm";
   char *filnavne[] =
    {NULL,"skraekeksempler.htm", "sammenskrevet.htm" }

   void init (void) {
    filnavn[0]=index;
   }

Men det har samme problem: at jeg skal huske at rette nummeret
ved ændringer.

Er der overhovedet en løsning i C?

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

 
 
Anders J. Munch (08-10-2002)
Kommentar
Fra : Anders J. Munch


Dato : 08-10-02 18:32

"Bertel Lund Hansen" <nospam@lundhansen.dk> skrev:
> Hej alle
>
> Jeg har et problem. Jeg ønsker at initialisere et array med nogle
> strings, og det er nemt nok. Samtidig er der visse af disse
> strings der skal bruges i andre sammenhænge. Rent logisk (og i
> Pascal) ville jeg gerne gøre sådan:
>
> const char index[] = "index.htm";
> char *filnavne[] =
> {index,"skraekeksempler.htm", "sammenskrevet.htm" }
>
> Men det er jo ikke tilladt.

Jo, med de rigtige typer:

const char index[] = "index.htm";
char const *filnavne[] =
{index,"skraekeksempler.htm", "sammenskrevet.htm" }

- Anders




Bertel Lund Hansen (08-10-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 08-10-02 19:10

Anders J. Munch skrev:

>> Men det er jo ikke tilladt.
>Jo, med de rigtige typer:

Tak for hjælpen.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Byrial Jensen (08-10-2002)
Kommentar
Fra : Byrial Jensen


Dato : 08-10-02 19:49

Bertel Lund Hansen <nospam@lundhansen.dk> skrev:
> Hej alle
>
> Jeg har et problem. Jeg ønsker at initialisere et array med nogle
> strings, og det er nemt nok. Samtidig er der visse af disse
> strings der skal bruges i andre sammenhænge. Rent logisk (og i
> Pascal) ville jeg gerne gøre sådan:
>
>    const char index[] = "index.htm";
>    char *filnavne[] =
>     {index,"skraekeksempler.htm", "sammenskrevet.htm" }
>
> Men det er jo ikke tilladt.

Jo, det er da tilladt hvis du ellers afslutter med semikolon og
erklærer filnavne som et array af pointer til const char.

[snip diverse kode med masser af syntaksfejl, fejlskrevne navne mv.]

> Er der overhovedet en løsning i C?

Ja. Gør som du skriver at du gerne vil gøre ...

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste