Aufgabe 2

main
s.eser 2024-05-31 11:41:34 +02:00
parent 052e1b34ed
commit 66d220ebc5
3 changed files with 33 additions and 12 deletions

BIN
Aufgabe1_2 100755

Binary file not shown.

View File

@ -1,10 +1,11 @@
#include <iostream>
#include <string>
#include <fstream>
// Template für flexiblen Array Typ
template <typename T>
class Container {
private:
public:
// T-Pointer für Inhalt des Array
T* data;
// int für Größe des Array
@ -22,13 +23,10 @@ private:
delete[] data;
// Array Inhalt von Objekt Instanz auf T-Pointer von Übergangsarray linken
data = new_data;
// Speicherfreigabe vom Übergangsarray
delete[] new_data;
// Aktualisieren der Array Größe der Instanz
arr_size = new_arr_size;
}
public:
// Konstruktor mit Anfangsarraygröße als Parameter
Container(int initial_arr_size){
// Array Größe der Instanz initialisieren
@ -61,15 +59,38 @@ public:
int main() {
Container<std::string> container(10);
Container<char> wavData(0);
printf("%d\n", container.getArraySize());
// Pointer auf test.wav
FILE* input;
// Variable zum Abspeichern von Byte Größe der wav Datei
long num_bytes;
container[15] = "Test";
// Öffnen der test.wav Datei in input mit Leserechten
input = fopen("test.wav", "r");
std::cout << "container[15]: " << container[15] << std::endl;
// Wenn test.wav Datei nicht existiert Abbruch
if(input == NULL)
return 1;
printf("%d\n", container.getArraySize());
// Setzen von FILE Pointer auf Ende der Datei
fseek(input, 0, SEEK_END);
// Abspeichern der Byte Größe mithilfe von input Pointer Position
num_bytes = ftell(input);
// Rücksetzen von FILE Pointer auf Anfang der Datei
fseek(input, 0, SEEK_SET);
// Überladener [] Operator zur dynamischen Speicherreservierung
wavData[num_bytes*sizeof(char)-1];
// Einlesen der Datei mit num_bytes * sizeof(char) und Abspeichern in wavData Array
fread(wavData.data, sizeof(char), num_bytes, input);
// Freigabe des FILE Pointer
fclose(input);
std::cout << "wavData: " << wavData.getArraySize() << std::endl;
return 0;
};

BIN
test.wav 100644

Binary file not shown.