Avatar billede Slettet bruger
20. december 2005 - 17:46 Der er 8 kommentarer og
1 løsning

Flyt alle pladser i struct en plads tilbage?

Hej

Jeg sidder og arbejder med struct (indholder navn og alder) og vil gerne gøre det muligt at slette og for at undgå et "hul", så skal de data der kommer efter flyttes tilbage.
eks:
0: Jens 21
1: Bo 7
2: Per 43

Hvis jeg så sletter 1 (Bo 7), så når jeg udskriver min struct, så kan det gerne se ud som følgende:
0: Jens 21
1: Per 43

Har prøve følgende:

for (i = i; i<=antal; i++)
{
  person[i].forNavn, person[++i].forNavn;
  personer[i].efterNavn = personer[++i].efterNavn;
  personer[i].alder = personer[++i].alder;
}

i: Det id som skal slettes/overskrieves
antal: Antallet af poster i struct

Men får fejl, når jeg comiler det
Avatar billede Slettet bruger
20. december 2005 - 17:47 #1
rettelse:

for (i = i; i<=antal; i++)
{
  person[i].forNavn, person[++i].forNavn;
  person[i].efterNavn = personer[++i].efterNavn;
  person[i].alder = personer[++i].alder;
}
Avatar billede arne_v Ekspert
20. december 2005 - 17:52 #2
for (i = slettet; i < antal; i++)
{
  strcpy(person[i].forNavn,personer[i+1].forNavn);
  strcpy(person[i].efterNavn,personer[i+1].efterNavn);
  person[i].alder = personer[i+1].alder;
}
Avatar billede Slettet bruger
20. december 2005 - 17:55 #3
Jeg får samme fejl:
Invaild indiretion

Har string.h i min include
Avatar billede arne_v Ekspert
20. december 2005 - 18:00 #4
hvilken linie ?

og har du skrevet det præcis som ovenfor ?
Avatar billede Slettet bruger
20. december 2005 - 18:19 #5
Har skrevet følgende:

for (i = i; i<antal; i++)
{
  strcpy(personer[i].forNavn,personer[i+1].forNavn); //fejl i denne linie og de 2 næste
  strcpy(personer[i].efterNavn,personer[i+1].efterNavn);
  personer[i].alder = personer[i+1].alder;
}
Avatar billede Slettet bruger
20. december 2005 - 18:37 #6
Jeg har fundet ud af det. Fejlen lå et andet sted.

Så bare smid et svar
Avatar billede arne_v Ekspert
21. december 2005 - 08:29 #7
ok
Avatar billede arne_v Ekspert
21. december 2005 - 08:29 #8
hvis det er C++ og ikke C så overvej en STL vector fremfor et array
Avatar billede Slettet bruger
21. december 2005 - 08:46 #9
Det er c
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