Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   c++ : mehrdimensionales array übergeben (https://www.tweakpc.de/forum/programmiersprachen/37854-c-mehrdimensionales-array-uebergeben.html)

sjel 19.06.2006 16:21

c++ : mehrdimensionales array übergeben
 
hallo! :)

tut mir leid, dass ich das x-te thema zu arrays aufmachem
aber ich hab mir schon die anderen beiträge durchglesen
und es funktioniert immer noch nicht :/

ich möchte in einem unterprogramm ein 2-dimensionales
array erstellen und in das hauptprogramm übergeben lassen.

in einem anderen beitrag hier im forum stand der code
für ein eindimensionales array.

int[][] neuesarray(int anz)
{
int[][] arr1=new int[anz][2];
return arr1; //leeres array zurueck geben
}

als fehlermeldung kommt:

error: expected unqualified-id before `[` token
und
error: expected `,` or `;` before `[` token
hier sind die fehler in der zeile 1.

weiß jemand was man da tun kann?


außerdem möchte ich ein array ohne größen-angaben erstellen
int vergleich = new int[][];
was auch nicht geht :(

über hilfe würde ich mich sehr freuen ;)


mfg, sjel

onlyJR 19.06.2006 18:47

AW: c++ : mehrdimensionales array übergeben
 
Also wenn ich das recht in Erinnerung hab, kannst Du kein ganzes Array zurückgeben, sondern nur ein Zeiger auf ein Array. Sorry kann Dir keinen Beispielcode geben, meine C++ Zeiten sind einfach zu lange her. :) Aber schau mal [URL="http://de.wikibooks.org/wiki/C++-Programmierung:_Funktionen#call-by-reference"]*da*[/URL] z.B. oder such um Google nach "Parameterübergabe Array". Da wird sich doch was finden lassen.

Dein Codeschnipsel sieht irgendwie nach C# aus und nicht C++.

Fabian 19.06.2006 19:37

AW: c++ : mehrdimensionales array übergeben
 
Hi,

jop nen Array kannst du nicht mit return zurückgeben.
Möglich ist der Weg über einen Pointer.

Ohne Größenangaben funktioniert so auch nicht. Du musst das Array dann dynamisch erzeugen, dafür gibt es die Funktion malloc:

[CODE]a = (int*)malloc(n*sizeof(int)); // belegt ein Array von n-Integervariablen auf a, nachher Aufruf mit a[10] möglich
...
free(a); // gibt Speicher von a wieder frei[/CODE]

BomberD 20.06.2006 08:30

AW: c++ : mehrdimensionales array übergeben
 
@Fabian: Aber dein Zitat ist Imho C und nicht C++.

Beides sollte man nicht mischen.

Speicherreservierung mit NEW wie ganz oben schon geschrieben
z.b. int[] a = new int[8];
Jop Array gehen nicht einfach so zu übergeben. C++ ist die Sprache der Pointer. Da ich das zum Kotzen find ist das gar nicht so meine Sprache^^

sjel 21.06.2006 18:05

AW: c++ : mehrdimensionales array übergeben
 
danke für die antworten! :)

oje, ich mag auch keine pointer,
muss ich mich halt durchkämpfen..:?


:-D

Fabian 21.06.2006 18:27

AW: c++ : mehrdimensionales array übergeben
 
Oi ... da hab ich mal wieder nicht alles gelesen *duck*


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.