2016-07-10 6 views
-4

dieses Stück Code Ursache Haufen laufenEin Haufen wurde Exception C beschädigt ++

#include <iostream> 
using namespace std; 

class X 
{ 
public: 
    char* charArr; 
    int *intArr1; 
    int *intArr2; 
    int *intArr3; 
    X() 
    { 
     charArr = new char[] { 5, 5, 5, 5 }; 
     intArr1 = new int[] { -10, -10, -10 }; 
     intArr2 = new int[] { -20, -20, -20}; 
     intArr3 = new int[] { -30, -30, -30}; 
    } 
    ~X() 
    { 
    delete[] charArr; 
    delete[] intArr1; 
    delete[] intArr2; 
    delete[] intArr3; 
    } 
}; 

int main() 
{ 
    X x; 
    return 0; 
} 

beschädigt Was mache ich falsch? Ich bin Verwendung von Visual Studio und das ist der Fehler msg: exception

+0

* Ich benutze Visual Studio * - Du bist ?? [Dieser Link] (http://rextester.com/FXYR13331) sagt anders. – PaulMcKenzie

+0

@ πάνταῥεῖ Er weiß nicht, warum es nicht funktioniert. Deshalb kam er hierher. –

+0

@ code0 Hast du jemals gehört, dass es notwendig ist, hier [MCVE] anzugeben, wenn du solche Fragen stellst? –

Antwort

0

ich zu Visual Studio bin mit. Und wenn ich versuche, mit dem Debuggen zu beginnen. Es gibt einige Fehler, wenn Sie schreiben:

charArr = new char[] { 5, 5, 5, 5 }; 
intArr1 = new int[] { -10, -10, -10 }; 
intArr2 = new int[] { -20, -20, -20}; 
intArr3 = new int[] { -30, -30, -30}; 

Ich glaube, Sie wie folgt schreiben sollte:

#include <iostream> 
using namespace std; 

class X 
{ 
public: 
    char* charArr; 
    //int *intArr1; 
    //int *intArr2; 
    //int *intArr3; 
    X() 
    { 
     charArr = new char[4]; 
     for(int i = 0; i < 4; i++) 
      charArr[i] = 5; 


     //intArr1 = new int[] { -10, -10, -10 }; 
     //intArr2 = new int[] { -20, -20, -20}; 
     //intArr3 = new int[] { -30, -30, -30}; 
    } 
    ~X() 
    { 
    delete[] charArr; 
    // delete[] intArr1; 
    // delete[] intArr2; 
    // delete[] intArr3; 
    } 
}; 

int main() 
{ 
    X x; 

    return 0; 
} 

Dann funktioniert es gut.