Debug Assertion Failed! _BLOCK_TYPE_IS_VALID(pHead-nBlockUse)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CXHPLY/article/details/51725120

    这是我编程所遇到的问题,做一下小结,以后便于查看,同时希望对大家有所帮助!

程序:



问题:



原因:

       delete删除的内存与实际分配的内存不相符.


说明:

    StrInput通过new开辟了一个空间,后语句StrInput = StrInputTemp.c_str()修改了StrInput的地址,因此delete时释放的是后面修改地址的那段内存,而非开始new创建内存空间.


解决方案1:


    仍采用new创建StrInput,但是采用strcpy()进行修改StrInput的内容,全过程未修改StrInput地址.

    注意:strcpy()的第一个参数不能是const,所以需要修改.


解决方案2:


    初始化时,使指针StrInput指向StrInputTemp.c_str()的地址,不进行new动态分配内存即可.

猜你喜欢

转载自blog.csdn.net/CXHPLY/article/details/51725120