Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.08.2005, 19:08

Array unbekannter Größe

Hallo

Ich würde gerne in eine Memberfunktion einer Klasse ein intArray benutzen, von weiß, wie groß es sein wird. Ich wollte also an die Funktion eine Parameter übergeben und diesen als Größe einsetzen. Leider sagt mein Compiler, dass er an dieser Stelle einen konstanten Ausdruck erwartet. Wie kann ich also ein intArray benutzen, von dem ich die Größe noch nicht weiß?

chrische

2

18.08.2005, 19:10

Schreib doch den Code rein

mfg Markus

3

18.08.2005, 19:13

Hallo

Habe leider den Code gerade nich am Start. Ich rufe eine Funktion auf, der ich eine unbestimmte Menge int-Werte übergeben möchte. Um diese Werte zu speichern, würde ich gerne ein Array anlegen, in das ich alle int-Werte schreiben kann.

Verständlich?

chrische

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

4

18.08.2005, 19:16

C-/C++-Quelltext

1
2
3
4
void allocate(int num)
{
   int* intarray = new int[num];
}

mfg Philipp

5

18.08.2005, 19:18

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
main() {
    int* piArray;
    piArray = new int[Groesse];
    // Daten ins Array schreiben

    funktion(piArray);
}

void funktion(int *piArray) {
    // Daten verwerten

}


meinst du sowas?

mfg Markus

[EDIT]Da war wohl einer schneller[/EDIT]

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

6

19.08.2005, 20:43

hm, dazu hätt ich noch ne frage, wie machen wenn das Array eine Membervariable, also inhalt einer klasse ist?

7

19.08.2005, 21:14

Hallo

Also bei mir ist das Array Memebrvariable. Ich habe es einfach erst in einer Memeberfunktion initialisiert. ( ich hoffe, dass man wirklich initialisiert sagt, weil ich immer Initialisieren, Definieren und Implemetieren verwechsle)

chrische

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

19.08.2005, 21:19

dann funktioniert das genauso! Nur eben in dem Geltungsbereich der Klasse. Aber nicht vergessen den Speicher fein wieder mit delete freizugeben *g* :)

Anonymous

unregistriert

9

20.08.2005, 00:08

Wenn du keinen std::vector verwenden willst (wofür es keinen Grund gibt ;) ), dann musst du es so machen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
void func( int array[], size_t size )
{
  for( int i = 0; i < size; ++i )
      array[ i ] = i; 
}

int main()
{
  int *array = new int[ 100 ];
  func( array, 100 );
  delete[] array;
}


Ich persönlich würde folgende Variante nehmen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>

void func( std::vector< int >& array )
{
  for( int i = 0; i < array.size(); ++i )
      array[ i ] = i;
}

int main()
{
    std::vector< int > array;
    array.push_back( 12 );
    array.push_back( 14 );
    array.push_back( 16 );
    array.push_back( 18 );

    func( array );
}

Werbeanzeige