diff --git a/Aufgabe1_2 b/Aufgabe1_2 new file mode 100755 index 0000000..f9bd201 Binary files /dev/null and b/Aufgabe1_2 differ diff --git a/Aufgabe1.cpp b/Aufgabe1_2.cpp similarity index 62% rename from Aufgabe1.cpp rename to Aufgabe1_2.cpp index 1d9bb8e..42be0de 100644 --- a/Aufgabe1.cpp +++ b/Aufgabe1_2.cpp @@ -1,10 +1,11 @@ #include #include +#include // Template für flexiblen Array Typ template 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 container(10); - - printf("%d\n", container.getArraySize()); - - container[15] = "Test"; - - std::cout << "container[15]: " << container[15] << std::endl; + Container 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; + + // Öffnen der test.wav Datei in input mit Leserechten + input = fopen("test.wav", "r"); + + // Wenn test.wav Datei nicht existiert Abbruch + if(input == NULL) + return 1; + + // 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; }; diff --git a/test.wav b/test.wav new file mode 100644 index 0000000..3179e0e Binary files /dev/null and b/test.wav differ