mboost-dp1

Hjælp C++ Array's


Gå til bund
Gravatar #1 - Wolly
22. jun. 2009 18:23
Selv om at dette vil stemple mig som total NOOOB, bliver jeg nød til at spørge nogen hvad f... der sker her:-)

Jeg er ved at lave en DLL fil, og bygger videre på en andens kode. Jeg har ikke programmeret i C++ i 10 år, sikkert derfor jeg ikke fatter hvad der sker.

Jeg kan definere et Array f.eks. med;
int array [3] = {3,6,8}

Og det går ganske fint. Jeg kan senere tilgå variablerne med;
time = array[2]

og time vil blive sat til 8 i dette tilfælde, det jeg ikke forstår er hvordan jeg ændre variablerne... Jeg ville mene jeg burde kunne lave en;
array[1] = 574

Men den går ikke... compileren vil ikke være med til det og giver følgende svar:
min kode skrev:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2369: 'player_action_taken' : redefinition; different subscripts
error C2440: 'initializing' : cannot convert from 'int' to 'int [2]'
There are no conversions to array types, although there are conversions to references or pointers to arrays

Jeg er helt lost her... hvad kan der være galt??? Skal man altid ændre variabler i array's med en pointer???

Håber der en en der vil være så flink at forklare mig hvad jeg gør galt...
Gravatar #2 - arne_v
22. jun. 2009 18:33
#1

Linien er OK (hvis man tilføjer semikolon).

Jeg gætter på at den er placeret et forkert sted.

Prøv og post lidt mere kode.
Gravatar #3 - arne_v
22. jun. 2009 18:35
Den form for assignment skal ske inde i en funktion/metode.

Hvis udenfor får man en fejl.

Det kunne muligvis være problemet.
Gravatar #4 - Wolly
22. jun. 2009 18:43
What!?!?!?! det virkede da jeg satte det ind i en function... Jeg går ud fra at det må betude at man kun kan definere variabler og sætte initial values uden for functionerne, og hvis de skal ændres skal det ske inde i en function... Det burde jo heller aldrig være nødvendigt at gøre når programmet starter op...


Mange tak for hjælpen:-)
Gravatar #5 - arne_v
22. jun. 2009 19:06
#4

Jep.

C/C++ er et rimeligt low level sprog.

"definere variabler og sætte initial values" udenfor en funktion består i at definere noget data i EXE filen som bliver loadet ind i memory når EXE filen loades.

"ændres" består i at udføre en eller flere maskin instruktioner. Den kode skal kaldes og man kalder kode i funktioner.
Gravatar #6 - Windcape
22. jun. 2009 19:41
Et gæt ville være at han forsøger at tilgå en ikke statisk variabel fra en statisk metode (f.eks. main)
Gravatar #7 - Wolly
22. jun. 2009 19:51
Nu vi er ved det, og i alle er så søde at hjælpe :-) Det jeg egentlig skulle var at at lave et array af struct's. Er dette den korrekte måde at gøre det på?
struct person{
int age
char name[30]
}friend[10;]


og så derefter tilgå variablerne med f.eks.
friend[3].age = 5;

i main {}

meningen er at få et array af firend på 10...
Gravatar #8 - arne_v
22. jun. 2009 20:17
Ja.

Bortset fra at semikolon skal på den anden side af firkantet parentes slut.
Gravatar #9 - arne_v
22. jun. 2009 20:18
Bemærk at array af struct godt kan initialiseres, så du behøver ikke nødvendigvis at assigne hver enkelt element og field.
Gravatar #10 - Wolly
22. jun. 2009 20:23
Ja jeg ved ikke helt hvad der sker med mine simikolon her:-)

Tak for hjælpen endnu en gang :-)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login