Avatar billede fralle.dk Nybegynder
02. februar 2004 - 16:58 Der er 6 kommentarer og
1 løsning

Indeksering af struct.

Hejsa,

Jeg ville høre om der er nogle der ved, om det er muligt at indeksere en struct som ved et array? ...står lige og mangler denne funktionalitet, men mener ikke det er muligt, uden at rode sig ud i noget typecast eller lignende. Tak på forhånd!
Avatar billede jpk Nybegynder
02. februar 2004 - 17:06 #1
Du kan overloade operator [] og selv definere hvordan den skal virke
Avatar billede arne_v Ekspert
02. februar 2004 - 17:12 #2
Kan du ikke putte et array ind i den struct eller evt. en union af et
array og det der er nu ?
Avatar billede fralle.dk Nybegynder
02. februar 2004 - 17:24 #3
jpk > kan du give et lille eksempel måske ?
Avatar billede fralle.dk Nybegynder
02. februar 2004 - 17:26 #4
arne v > min struct indeholder en del forskellige typer desværre...
Avatar billede bertelbrander Praktikant
02. februar 2004 - 18:55 #5
#include <stdio.h>

typedef union
{
  int a[1];
  struct
  {
    int x;
    int y;
  };
}MyStruct;

int main(void)
{
  MyStruct S;
  int i;

  S.x = 1;
  S.y = 2;

  for(i = 0; i < sizeof(S)/sizeof(int); i++)
    printf("%d\n", S.a[i]);

  return 0;
}
Avatar billede bertelbrander Praktikant
02. februar 2004 - 18:56 #6
#include <stdio.h>

typedef struct
{
  int x;
  int y;
}MyStruct;

int main(void)
{
  MyStruct S;
  int i, *p;


  S.x = 1;
  S.y = 2;

  for(i = 0, p = (int *)&S; i < sizeof(S)/sizeof(int); i++)
    printf("%d\n", p[i]);

  return 0;
}
Avatar billede fralle.dk Nybegynder
03. februar 2004 - 08:16 #7
Tak for svaret bertelbrander! :)
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