c++ - Mengenai _CrtDumpMemoryLeaks
ringa_lee
ringa_lee 2017-05-16 13:23:55
0
1
702

Saya hanya menulis pokok binari sendiri untuk menguji penggunaan_CrtDumpMemoryLeaksKodnya adalah seperti berikut. Saya menjejakinya dengan titik putus dan mendapati semua nod telah dipadamkan, tetapi masih terdapat gesaan dalam tetingkap keluaran.

#include "stdafx.h" #include  #include  #include  class Node { public: int data; Node *lchild; Node *rchild; Node(int d) : data{ d }, lchild{ NULL }, rchild{ NULL } {} }; class tree { public: Node *root; tree() : root{ NULL } {} void build() { root = new Node(5); root->lchild = new Node(6); root->rchild = new Node(7); root->lchild->lchild = new Node(8); root->lchild->rchild = new Node(9); in(root); } void remove(Node *node) { if (node->lchild != NULL) { remove(node->lchild); } if (node->rchild != NULL) { remove(node->rchild); } delete node; } void in(Node *node) { if (node->lchild != NULL) { preorder(node->lchild); } std::cout << node->data << " "; if (node->rchild != NULL) { preorder(node->rchild); } } ~tree() { remove(root); } void convert(std::string &pre, std::string &in) { } }; int main() { tree t; t.build(); _CrtDumpMemoryLeaks(); return 0; }

Saya ada dua soalan untuk anda di sini:

  1. Di manakah kebocoran memori dalam kod mudah ini

  2. Bagaimana untuk mengetahui di mana kebocoran memori anda sendiri daripada maklumat segera yang diberikan oleh

    , apakah pengetahuan asas yang anda perlukan Untuk lebih spesifik, bagaimana anda boleh mencari alamat0x02EE2880yang diberikan oleh_CrtDumpMemoryLeaks给出的提示信息得出自己内存泄漏之处, 需要那些基础知识? 再具体些,_CrtDumpMemoryLeaks给出的地址0x02EE2880等如何从代码中迅速找到, 毕竟写多点的话肯定不能手动找啊. 以及09 00 00 00 00....dengan cepat? daripada kod? Lagipun, tulis Jika ada lagi, anda pasti tidak boleh mencari secara manual Dan apakah yang09 00 00 00 00....mewakili?

  3. .
ringa_lee
ringa_lee

ringa_lee

membalas semua (1)
phpcn_u1582

_CrtDumpMemoryLeaks();的时候 t 还没有析构啊

int main() { { tree t; t.build(); } _CrtDumpMemoryLeaks(); return 0; }

改成这样

从提示信息的data来找,就是你说的09 00 00 00那一串,这就是泄露内存的内容

09 00 00 00| 00 00 00 00| 00 00 00 00

0-3字节是int,小端序;4-7和8-11分别是左右指针,和起来就是new Node(9);

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!