Aufgabe 12
Schwierigkeitsgrad: Mittel
Themen: Arrays Zeiger Funktionen Kontrollstrukturen Programmausgabe
- Aufgabenstellung
- Lösung
Schreiben Sie eine Funktion void allocate_array(...), die ein quadratisches zweidimensionales Array () mithilfe von dynamischer Speicherverwaltung (new, delete,...) erstellt und initialisiert. Das Array soll mithilfe von Zeigern an die main-Funktion übergeben werden.
Schreiben Sie eine Funktion, die auf der Diagonalen des Arrays hochzählt, sowie eine Funktion, um die das Arrays im Terminal auszugeben.
info
Hinweis: Ein 2D-Array ist eigentlich ein Array von Arrays. Achten Sie darauf dass alle Arrays alloziert werden müssen.
#include <iostream>
using std::cout, std::endl;
void allocate_array(int size, int ***array)
{
// Allozieren de Speicherplatzes
*array = new int *[size];
for (int i = 0; i < size; i++)
{
(*array)[i] = new int[size];
}
// Initialisire Array mit 0
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
(*array)[i][j] = 0;
}
}
}
void diagonal(int **array, int size)
{
for (int i = 0; i < size; i++)
{
array[i][i] = i;
}
}
void printArray(int **array, int size)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
}
int main()
{
int size = 5;
int **array = nullptr;
allocate_array(size, &array);
diagonal(array, size);
printArray(array, size);
}