[c++]array vullen met byte[13]'s?

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

  • pinkwin|IA
  • Registratie: Juni 2003
  • Laatst online: 23-04-2004
Ik zit met een probleem in m'n maag. In een programma wordt in een functie (GenerateByteArray) een onbekend aantal byte[13]'s aangemaakt. Deze moeten opgeslagen worden, en ik denk dat een andere array hier het beste voor geschikt is. Maar wat voor een type array moet dat dan zijn?

ik verwacht dat mijn code er zo uit moet komen te zien:
C++:
1
2
3
4
5
6
7
void CProgram::GenerateByteArray(...* aOut){
  for (int i=0; i<iGroupAmount; i++){    // iGroupAmount is een onbekend aantal tussen 1 en 100
    byte aSequence[13];
    Encode((CGroup*)group[i], aSequence);  // data wordt opgehaald, veranderd en in aSequence gezet
    aOut.Add(aSequence);
  }
}


Als dit uberhaupt mogelijk is, hoe moet ik aOut dan declareren?

Ik zeg maar zo, ik zeg maar nix. dan zeg ik al veel te veel.


  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
hoe moet ik aOut dan declareren?
Wat bedoel je hier prcs mee?
die byte arrays zijn elke keer aanwezig, maar worden ook weer weg gehaald aan het eind van de for loop (bij elke loop dus)

/me weet geen leuke quote voor in zijn signature


  • pinkwin|IA
  • Registratie: Juni 2003
  • Laatst online: 23-04-2004
ik weet dat aan het eind van de loop de aSequence weer weggehaald wordt.
daarom wil ik de data van aSequence opslaan in een de variabele waarvan een pointer wordt meegegeven bij het aanroepen van de functie..
Wat voor type moet die variabele dan zijn

Ik zeg maar zo, ik zeg maar nix. dan zeg ik al veel te veel.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

pinkwin, je opent de laatste tijd erg veel C++ topics met allerlei vragen over syntax e.d.. Ik denk dat het een stuk handiger is als je even een goed C++ boek aanschaft, waarin de basics duidelijk vermeld staan. Even je compiler documentatie openslaan helpt ook wel, en zeker in de MSDN (je gebruikt toch VC++?) staat de syntax vermeld.

Elke keer een topic openen over dit soort basisdingen lijkt me niet echt gewenst. Een enkele keer is niet erg, maar je blijft nu aan de gang. Hoog tijd om er zelf wat aan te doen dus, ipv hier iedere keer de vragen te stellen

Ik zal je, voor ik het topic sluit, nog even een tip geven mbt je onderwerp, zodat je wel even verder kunt:
C++ kent een uitgebreid typesysteem waardoor hele complexe types mogelijk zijn. Dat kan voor de beginner nogal moeilijk zijn om uit te vinden, maar gelukkig is er een handige oplossing, namelijk RTTI. Het is namelijk mogelijk om de string-representatie van een type te verkrijgen in je programma, zodat je makkelijk kan uitzoeken wat de geldige C++ syntax is voor een gecompliceerd type.

Zo ook hier: Je hebt een byte[13], maar dat is op zich ook weer een array. Wat je dus wilt is een pointer naar een byte[13].
Hier kom je als volgt achter: maak een typedef aan voor die byte[13]
C++:
1
typedef byte byte_array[13]


Een pointer naar dat type kun je nu gewoon definieren als byte_array *
Nou zou je dat natuurlijk gewoon kunnen gebruiken, maar om even te kijken wat de volledige C++ syntax is voor dat type doe je in een test-programmaatje:
C++:
1
cout << typeid (byte_array *).name () << endl


en dat levert als output: char (*)[13]

Je kunt een variabele met dit type dus declareren als:
C++:
1
char (*byte_array_pointer)[13];

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.