Avatar billede f2f4 Novice
03. juni 2010 - 17:45 Der er 6 kommentarer og
1 løsning

Flytning i array af struct

Jeg får en underlig fejl (nogle pladser i mit array overskrives ureglementeret) i et array af struct, og overvejer om nedenstående 'omrokeringsrutine' egentlig er 'lovlig'!?

Den omhandlende struct:
struct TDekGranseVardiRec
{
    TDato  GraenseDato;
    double  GraenseKurs;
    double  GraenseNom;
    double  GraenseStkStr;
};
struct TGraenseRec
{
  TIsin  FondsKode;
  int    NGrDato;
  short  AvanceIndgangsvrdiFaktisk;
  TDekGranseVardiRec* GranseVardi;
};

Den kode jer er i tvivl om (er dette korrekt/lovligt):

void OmbytGranse(int Person, int Source, int Dest)
{
  TGraenseRec TempRec = XXX.Granse[Source];
  XXX.Granse[Source] = XXX.Granse[Dest];
  XXX.Granse[Dest] = TempRec;
}

Tak for et hint, hvis I har et!
Avatar billede arne_v Ekspert
04. juni 2010 - 01:12 #1
Umiddelbart ser den meget fin ud.

Er du sikker på at fejlen ikke er et andet sted i koden?

Klassiske fejl såsom:
- returnere en pointer til en lokal variabel
- en class med pointere i som ikke har = operator og copy constructor
Avatar billede f2f4 Novice
04. juni 2010 - 08:19 #2
Tja ...
Tak for kommentarer, jeg må jo lede vidre om der er et hul et sted ;-)

Kan blot konstaterer at TempRec.GranseVardi[x] lader til at ændrer sig ved linien: XXX.Granse[Source] = XXX.Granse[Dest];
Avatar billede arne_v Ekspert
05. juni 2010 - 01:13 #3
Det kunne være en af de to fejl jeg nævner. Formentligt den første.
Avatar billede segmose Nybegynder
17. juni 2010 - 14:47 #4
Du mangler måske en copyconstructor.

Søg efter deep copy
Avatar billede arne_v Ekspert
04. juli 2010 - 03:28 #5
f2f4?
Avatar billede f2f4 Novice
02. september 2010 - 07:49 #6
Beklager manglende opfølgning. Det var vist lige før ferien. Jeg mener at du arne_v ledte mig på sporet af et eller andet, men jeg husker ikke de nærmere omstændigheder, måske en fejl-40. Giv gerne et svar arne_v, og tak for hjælpen
Avatar billede arne_v Ekspert
02. september 2010 - 15:24 #7
ok
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