Avatar billede nomak Nybegynder
10. juli 2003 - 19:18 Der er 10 kommentarer og
1 løsning

cleare en struct?

Hej E!

er der nogen nem måde man kan cleare et struct array, og ligeledes et punkt i en struct?

prøver at vise det

har en struct..

typedef struct {
int a;
int b;
} noget;

noget andet[100];

andet[1].a = 1;
andet[1].b = 2;

andet[2].a = 3;
andet[2].b = 4;

nem_måde_at_cleare_hele_struct(andet);
cleare hele structen..

new_måde_at_cleare_noget_i_struct(andet, b);
cleare b i alle andet[nr]..

håber i forstår?

//Nomak
Avatar billede arne_v Ekspert
10. juli 2003 - 19:23 #1
memset(andet,0x00,100*sizeof(noget));
memset(andet[2],0x00,sizeof(noget));
Avatar billede arne_v Ekspert
10. juli 2003 - 19:24 #2
Den første clearer alle felter i alle elementer.

Den anden clearer alle felter i et element.

Der er ike nogen smart måde at cleare et felt i alle elementer - det skal være
en løkke.
Avatar billede dilleberg Nybegynder
11. juli 2003 - 00:01 #3
1. kan også skrives som
memset(andet,0,sizeof(andet));

2. skal skrives som
memset(&andet[2],0,sizeof(noget));
eller
memset(andet+2,0,sizeof(noget);

db
Avatar billede dilleberg Nybegynder
11. juli 2003 - 00:02 #4
Ups, mangler en parentes:
memset(andet+2,0,sizeof(noget));
Avatar billede arne_v Ekspert
11. juli 2003 - 07:51 #5
Du har ret: der manglede en ampersand !

memset(&andet[2],0x00,sizeof(noget));
Avatar billede nomak Nybegynder
14. juli 2003 - 20:48 #6
arne_v, tror du har misforstået mit andet spørgsmål!

skal clearer et element i alle felter

og ikke clearer alle felter i et element

?

lige kommet hjem fra ferie :D
Avatar billede arne_v Ekspert
14. juli 2003 - 20:52 #7
Jeg er ikke helt med.

Hvis vi bruger de tal værdier fra dit spørgsmål.

du kan cleare 1,2 og 3,4
du kan cleare 1,2 eller 3,4
hvis du skal cleare 1 og 3 eller 2 og 4 skal du bruge en løkke
Avatar billede nomak Nybegynder
14. juli 2003 - 21:11 #8
det er det sidste jeg mener!
Avatar billede arne_v Ekspert
14. juli 2003 - 21:13 #9
Så er det:

for(i=0;i<100;i++) andet[i].a = 0;

eller:

for(i=0;i<100;i++) andet[i].b = 0;
Avatar billede arne_v Ekspert
22. juli 2003 - 22:33 #10
OK ?
Avatar billede nomak Nybegynder
22. juli 2003 - 23:49 #11
glemte at acceptere.. sorry
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