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

Inatrox

Frischling

  • »Inatrox« ist der Autor dieses Themas

Beiträge: 61

Wohnort: Dresden

  • Private Nachricht senden

1

18.03.2014, 20:47

Ein 2 Dimensionales Integer Array aus der main in eine Andere .cpp Datei im Projekt "übergeben"

Ich bin noch ein Amateur ^^. Deswegen kommt es zu dieser Frage, auf jedenfall möchte ich wissen (Wie es die Überschrift schon sagt), wie man ein Integer Array an eine im selben Projekt vorhandene .cpp Datei "übergeben" kann, um dann mithilfe von diesem Array Textausgaben auszugeben. Da ich noch ein Amateur bin bitte ich euch es möglichst anfängerfreundlich zu erklären, so das auch ich es verstehe ^^.
cout << "Programmieren muss sein" << endl;

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

18.03.2014, 20:49

Ein Amateur ist jemand, der eine Sache sehr gut kann, aber kein Geld damit verdient.

Erster Treffer bei Google:
http://www.cplusplus.com/forum/articles/20881/:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
void printArray(int data[], int length)
{
    for(int i(0); i < length; ++i)
    {
        std::cout << data[i] << ' ';
    }
    std::cout << std::endl;
}
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

18.03.2014, 21:15

Du erstellst eine "Header-Datei", blabla.hpp
Dort schreibst du, ich beziehe mich mal auf BlueCobolds Beispielfunktion, folgendes hinein:

C-/C++-Quelltext

1
extern void printArray(int data[], int length);

Das ist die Deklaration der Funktion, die du dann in irgendeiner *.cpp im Projekt definierst, musst nur vorher blabla.hpp inkludieren. ;)
Um die Funktion nun in deiner gewünschten, anderen *.cpp nutzen zu können, musst du die gleiche Header-Datei inkludieren und kannst dann einfach die Funktion ganz normal mittels operator() aufrufen.

MfG
Check

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

4

18.03.2014, 21:36

Das ist aber kein zweidimensionales Array (siehe Titel)

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
template<std::size_t N, std::size_t U>
void printArray(int (&arr)[N][U], const std::string& separator)
{
    for (std::size_t i = 0; i < N; ++i)
    {
        for (std::size_t k = 0; k < U; ++k)
        {
            std::cout << arr[i][k] << separator;
        }
    }
}

So kann der Compiler die Array-Größe selbst ermitteln.

Ansonsten:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
const std::size_t innerSize = 2;
void printArrayNoTemplate(int arr[][innerSize], std::size_t n, const std::string& separator)
{
    for (std::size_t i = 0; i < n; ++i)
    {
        for (std::size_t k = 0; k < innerSize; ++k)
        {
            std::cout << arr[i][k] << separator;
        }
    }
}


Bei dieser Lösung musst du die Größe des inneren Arrays anpassen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

19.03.2014, 07:44

Das ist aber kein zweidimensionales Array (siehe Titel)
Das Denken überlasse ich dem geneigten Leser.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

6

19.03.2014, 16:11

Wie soll man denn mit Hilfe deiner Antwort darauf kommen, wie man in C++ mehrdimensionale Arrays übergibt? Arrays als Parameter sind in C++ alles andere als logisch.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Werbeanzeige