デストラクタでヒープの破損が検出されました

xinta

これは私のコードです。このエラーが発生しました。デストラクタに問題があると思います。これを説明してもらえますか?デストラクタはヒープの破損を引き起こします

 #pragma once
 #include<iostream>
 class Adresa
{
char *nume;
int numar;
char *localitate;
public:
Adresa();
Adresa(char *n, int nr, char*l);
Adresa(Adresa &adr);
 void print()
{
    printf("%s %d %s ", nume, numar, localitate);
}
~Adresa();
};

そして

#include "Adresa.h"
#include<iostream>

 Adresa::Adresa()
 {
nume = new char();
localitate = new char();
numar = NULL;
}

Adresa::Adresa(char *n, int nr, char*l)
{      
this->nume = _strdup(n);
this->localitate = _strdup(l);
this->numar = nr;
}      
Adresa::Adresa(Adresa &adr)
{
this->nume = new char(strlen(adr.nume) + 1);
strcpy(nume, adr.nume);
this->numar = adr.numar;
this->localitate = new char(strlen(adr.localitate) + 1);
strcpy(localitate, adr.localitate);
}

Adresa::~Adresa()
{
if (nume != NULL)
{


    delete[] nume;
}
if (localitate != NULL)
{
    delete[] localitate;
}
 }

出力はこれですここに画像の説明を入力してください

デストラクタの問題は何ですか?

スウィフト-フライデーパイ

あなたはJavaとC ++を混同していました。新しい式では、type-idの後に親に入るのは、割り当てられたブロックのサイズではなく、初期化子の一部です。

char *s = new char(3);

1文字を割り当て、それに3の値を割り当てます。

あなたが書かなければならなかったこと

char *s = new char[3];

この場合にのみ使用することが合法です delete[]

このようなポインタでは通常の削除を使用できません。ええと、できますが、通常はそうすべきではありません。なぜなら、それは未定義の振る舞いにつながるからです。たとえば、一部のプラットフォームではアレイ全体の割り当てを解除しません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ヒープの破損が検出されましたか?

分類Dev

ヒープの破損が検出されました| C

分類Dev

クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

分類Dev

デバッグエラー:ヒープの破損が検出されました

分類Dev

ヒープの破損により、C ++でエラーが検出されました

分類Dev

ヒープ破損が検出されましたMalloc()Free()

分類Dev

iOSエラー:ヒープの破損が検出され、空きリストが破損し、ガード値が正しくありません:0

分類Dev

ヒープ破損が検出されました-iPhone5Sのみ

分類Dev

エラーc ++アサーションの失敗ヒープの破損が検出されました

分類Dev

C ++:通常のブロック後にヒープの破損が検出されました

分類Dev

C ++:通常のブロック後にヒープの破損が検出されました

分類Dev

通常のブロック後にヒープの破損が検出されました(#181)

分類Dev

ヒープの破損が検出されました:通常のブロック後(#176)

分類Dev

通常のブロック #63 の後にヒープ破損が検出されました

分類Dev

スタックの破損が検出され、dalvikVMがクラッシュしました

分類Dev

文字列を削除した後、C ++でヒープ破損が検出されました

分類Dev

検出されたヒープ破損:通常のブロック後()

分類Dev

C-アレイを解放するときにヒープ破損が検出されました

分類Dev

中断されたラップトップのバッテリーがなくなると、データが破損するリスクがありますか?

分類Dev

C ++の多重継承とアップキャストされたスマートポインターの破壊により、VS2017でヒープが破損します

分類Dev

boost :: fibonacci_heapコピーコンストラクターがソースヒープを破損します

分類Dev

投稿されたデータが破損した場合、kafkaのシンクステップをスキップします

分類Dev

Flutter Web:フラッター実行時に挿入されたclient.jsスクリプトで未処理のエラーが検出されました

分類Dev

Flutter Web:フラッター実行時に挿入されたclient.jsスクリプトで未処理のエラーが検出されました

分類Dev

破損したXPOSを搭載したラップトップを渡されました-Ubuntuをインストールするのが好きです

分類Dev

破損したXPOSを搭載したラップトップを渡されました-Ubuntuをインストールするのが好きです

分類Dev

カスタムベクトルクラスのヒープ破損エラー

分類Dev

プログラムが数秒で電力損失が発生することを検出した場合、データの破損を回避するために何ができますか?

分類Dev

デストラクタが理解できない出力を返します( `./a.out 'のエラー:ダブルフリーまたは破損(fasttop):)

Related 関連記事

  1. 1

    ヒープの破損が検出されましたか?

  2. 2

    ヒープの破損が検出されました| C

  3. 3

    クラス内のいくつかの配列でdelete []を呼び出しているときに「ヒープ破損が検出されました」-C ++

  4. 4

    デバッグエラー:ヒープの破損が検出されました

  5. 5

    ヒープの破損により、C ++でエラーが検出されました

  6. 6

    ヒープ破損が検出されましたMalloc()Free()

  7. 7

    iOSエラー:ヒープの破損が検出され、空きリストが破損し、ガード値が正しくありません:0

  8. 8

    ヒープ破損が検出されました-iPhone5Sのみ

  9. 9

    エラーc ++アサーションの失敗ヒープの破損が検出されました

  10. 10

    C ++:通常のブロック後にヒープの破損が検出されました

  11. 11

    C ++:通常のブロック後にヒープの破損が検出されました

  12. 12

    通常のブロック後にヒープの破損が検出されました(#181)

  13. 13

    ヒープの破損が検出されました:通常のブロック後(#176)

  14. 14

    通常のブロック #63 の後にヒープ破損が検出されました

  15. 15

    スタックの破損が検出され、dalvikVMがクラッシュしました

  16. 16

    文字列を削除した後、C ++でヒープ破損が検出されました

  17. 17

    検出されたヒープ破損:通常のブロック後()

  18. 18

    C-アレイを解放するときにヒープ破損が検出されました

  19. 19

    中断されたラップトップのバッテリーがなくなると、データが破損するリスクがありますか?

  20. 20

    C ++の多重継承とアップキャストされたスマートポインターの破壊により、VS2017でヒープが破損します

  21. 21

    boost :: fibonacci_heapコピーコンストラクターがソースヒープを破損します

  22. 22

    投稿されたデータが破損した場合、kafkaのシンクステップをスキップします

  23. 23

    Flutter Web:フラッター実行時に挿入されたclient.jsスクリプトで未処理のエラーが検出されました

  24. 24

    Flutter Web:フラッター実行時に挿入されたclient.jsスクリプトで未処理のエラーが検出されました

  25. 25

    破損したXPOSを搭載したラップトップを渡されました-Ubuntuをインストールするのが好きです

  26. 26

    破損したXPOSを搭載したラップトップを渡されました-Ubuntuをインストールするのが好きです

  27. 27

    カスタムベクトルクラスのヒープ破損エラー

  28. 28

    プログラムが数秒で電力損失が発生することを検出した場合、データの破損を回避するために何ができますか?

  29. 29

    デストラクタが理解できない出力を返します( `./a.out 'のエラー:ダブルフリーまたは破損(fasttop):)

ホットタグ

アーカイブ