草庐IT

delete_test

全部标签

c++ - 我如何在共享内存中使用运算符 `new` 和 `delete`?

我想使用共享内存在多​​个程序之间共享一些对象。我在thissite找到了示例.它没有任何对象分配,只是直接寻址,但我想在共享内存中创建结构或类。 最佳答案 因为内存已经分配好,你想使用placementnew:void*ptr=shmat(shmid,0,0);//HandleerrorsMyClass*x=new(ptr)MyClass;然后,MyClass的新实例将在ptr指向的内存中构造。当不需要该对象时,您必须手动调用析构函数(不释放内存)。ptr->MyClass::~MyClass();

c++ - delete[] 是否释放整个内存块?

考虑以下几点:char*msg=newchar[20];msg[4]='\0';delete[]msg;delete[]msg是否释放了分配给msg的所有20个字符,还是仅释放了\0之前的那些字符?如果它只释放到\0,我怎样才能强制它删除整个内存块? 最佳答案 您问题中的原始代码具有未定义的行为,因为您将delete与new[]一起使用。我注意到您已通过将delete替换为delete[]来修复它:delete[]msg;这是正确的,并且会释放所有由new[]分配的内存。没有“删除到\0”或任何其他此类“部分”删除的概念。只能删除分

c++ - 为什么要使用 new 和 delete?

我是C++的新手,我想知道为什么我还要费心使用new和delete?它可能会导致问题(内存泄漏),我不明白为什么我不应该在没有new运算符的情况下只初始化一个变量。有人可以向我解释吗?很难用谷歌搜索这个具体问题。 最佳答案 出于历史和效率原因,C++(和C)memorymanagement是明确的和手动的。有时,您可能会在callstack上分配(例如,通过使用VLAs或alloca(3))。然而,这并不总是可能的,因为堆栈大小有限(取决于平台,几千字节或几兆字节)。内存需求并不总是FIFO或LIFO.确实发生了您需要分配内存的情况

c++ - deleted 指针指向什么?

int*a=nullptr;//NULLbeforeC++11a=newint(1);deletea;a现在指向什么?它指向nullptr还是指向它在被删除之前指向的地址? 最佳答案 其他一些答案错误地说“值不会改变”。但是确实如此:删除前有效,删除后无效;这是一个变化。此外,值的表示也可能发生变化。例如,实现可以将a设置为null,或者调试器将识别的某种模式,以帮助检测变量的无效使用。 关于c++-deleted指针指向什么?,我们在StackOverflow上找到一个类似的问题:

C++ new 和 delete 以及字符串和函数

好的previous问题回答的很清楚,但是我发现了另一个问题。如果我这样做会怎样:char*test(intran){char*ret=newchar[ran];//process...returnret;}然后运行它:for(inti=0;i那么在将char*转为string之后,我就不用再为删除而烦恼了?编辑:正如回答的那样,我必须delete[]每个new[]调用,但在我的情况下这是不可能的,因为指针丢失了,所以问题是:如何正确地将char转换为string? 最佳答案 这里您不是转换char*为[std::]string,而

c++ - 比较 Google Test 或 Google Mock 中的特征矩阵

我想知道有没有好的方法可以测试两个Eigen使用GoogleTest的近似相等矩阵,或GoogleMock.将以下测试用例作为简化示例:我将两个复值矩阵A和B相乘,并期望某个结果C_expect。我使用Eigen计算数值结果C_actual=A*B。现在,我想比较C_expect和C_actual。现在,相应的代码如下所示:#include#include#include#includetypedefstd::complexComplex;typedefEigen::Matrix2cdMatrix;TEST(Eigen,MatrixMultiplication){MatrixA,B,C

ios - 段错误 : 11 when running tests (XCode 8, Swift 2.3)

自从将我的混合Swift和Objective-c项目移动到带有Swift2.3的XCode8后,我每次在对任何项目进行更改后运行测试时都会收到“由于信号导致命令失败:段错误:11”的错误测试文件。当我点击错误以获取更多信息时,我看到::1:9:note:infileincludedfrom:1:#import"Headers/Utilities.h"^/Users/.../Utilities.framework/Headers/Utilities.h:18:9:error:includeofnon-modularheaderinsideframeworkmodule'Utilities

openssl3.2/test/certs - 033 - time stamping certificates

文章目录openssl3.2/test/certs-033-timestampingcertificates概述笔记ENDopenssl3.2/test/certs-033-timestampingcertificates概述openssl3.2-官方demo学习-test-certs笔记/*!\filemy_openssl_linux_log_doc_033.txt\noteopenssl3.2/test/certs-033-timestampingcertificates带时间戳的证书自己调用openssl时,如果也要动态参数文件(不落地),也可以参照.sh的用法,自己建立多个参数输入的管

openssl3.2/test/certs - 055 - all DNS-like CNs allowed by CA1, no DNS SANs

文章目录openssl3.2/test/certs-055-allDNS-likeCNsallowedbyCA1,noDNSSANs概述笔记ENDopenssl3.2/test/certs-055-allDNS-likeCNsallowedbyCA1,noDNSSANs概述openssl3.2-官方demo学习-test-certs笔记/*!*\fileD:\my_dev\my_local_git_prj\study\openSSL\test_certs\055\my_openssl_linux_doc055.txt*\noteopenssl3.2/test/certs-055-allDNS-

ios - 由于未捕获的异常而终止应用程序,原因 : 'attempt to delete row 3 from section 1 which only contains 0 rows before the update'

我正在尝试重新加载我的TableView,但我收到此异常“由于未捕获的异常‘NSInternalInconsistencyException’而终止应用程序,原因:‘尝试从第1节中删除第3行,该节仅包含更新前的0行’”。下面是我的代码:-functableView(_tableView:UITableView,numberOfRowsInSectionsection:Int)->Int{ifstatusTableView==tableView{returnModelAssessStatus.sharedInstance.arrType.count}else{if!sections[se