I don't get why my code is not working.Without the destructor it's working fine but if I try to delete the array allocated on the heap my Program stops and says
Invalid address specified to RtlValidateHeap
I already googled my Problem but could not find a solution which could help me.
Here is my code:
File : Vektor.h
class Vektor {
private:
    int dimension;
    int* feld;
public:
    Vektor(int dim=0);
    int getAt(int idx); // Getter-Funktion für Werte des Vektors
    // int getDimension(); // Getter-Funktion für Dimension
    Vektor addiereZu(Vektor v); // Addition zweier Vektoren
    Vektor multipliziereMit(int z); // Multiplikation von Vektor mit Zahl
    void ausgeben(); // Ausgabe am Bildschirm (Format ( 0 1 2 ... ) )
        int summiere(); // Vektor-Summation
        void einlesen(); // Werte einlesen
        ~Vektor();
    };
File: Vektor.cpp
#include "Vektor.h"
#include "Funktionen.h"
#include <iostream>
using namespace Funktionen;
using namespace std;
Vektor::Vektor(int dim) {
    feld = NULL;
    // Todo für später:
    if (dim <= 0)
        dim = 0;
    dimension = dim;
    if (dim > 0)
        feld = new int [dimension];
    // Feld mit Werten initialisieren
    for (int i=0; i<dimension; i++)
        feld[i] = 0;
}
int Vektor::getAt(int idx) {
    if (idx >=0 && idx < dimension)
        return feld[idx];
    //else {
        // Fehlerausgabe
        cout << "Vektordimension überschritten.\n";
        // default-Wert zurückgeben
        return 0;
    //}
}
Vektor Vektor::addiereZu(Vektor v) {
    Vektor ergebnis(dimension);
    for (int i = 0; i < dimension; i++) {
        ergebnis.feld[i] = feld[i] + v.feld[i];
    }
    return ergebnis;
}
Vektor Vektor::multipliziereMit(int z) {
    Vektor ergebnis(dimension);
    for (int i = 0; i < dimension; i++) {
        ergebnis.feld[i] = feld[i] * z;
    }
    return ergebnis;
}
void Vektor::ausgeben() {
    // Vektor im Format "( 0 1 2 ... )" ausgeben.
    cout << "( ";
    for (int i = 0; i < dimension; i++) {
        cout << feld[i];
        cout << " ";
    }
    cout << ")";
}
int Vektor::summiere() {
    // Summieren der einzelnen Werte des Vektors
    int summe = 0;
    for (int i = 0; i < dimension; i++) {
        summe += feld[i];
    }
    return summe;
}
void Vektor::einlesen() {
    // Einzelne Werte von der Tastatur einlesen
    for (int i = 0; i < dimension; i++) {
        cout << "Wert für Stelle " << i << ": ";
        // Wert abfragen
        feld[i] = intEingabe(cin);
    }
}
Vektor::~Vektor()
{
    if (dimension > 0)
        delete[] feld; --> Programm stops right here!
}
 
    