草庐IT

pg_free_result

全部标签

c++ - c++ 中的 malloc/free 和 new/delete 兼容性?

malloc/free和new/delete有一个很好的比较here,以及malloc()和free()如何工作的很好的解释here.显然,我们不会混合使用它们-将free与new一起使用或将delete与malloc一起使用。我们可以看到很多开源项目,有很多贡献者,使用这两种机制,同时遵守上述“禁止混合”规则。通常,您在一个文件中只有一种方式(一位作者,一种偏好)。我已经fork了这样一个项目,我正在使用new/delete添加一些功能。但是我遇到了一些奇怪的内存损坏。当然,我可能对他们负责,但是.....这让我问了一些“幼稚”的问题:我可以在同一个编译单元(*.o)中同时使用mal

c++ - 最烦人的解析 : why doesn't `g( ( f() ) );` call `f` 's default constructor and pass the result to `g` 's ctor that takes a `f` ?

这不是Mostvexingparse:whydoesn'tAa(());work?的拷贝,它基于Aa());形式的解析,其OP认为可以使用额外的集合默认构造一个A对象括号。相比之下,我的问题是关于2个类,f和g,其中f具有默认构造函数,而g的构造函数采用f。我想用一个临时的f参数调用g的构造函数,而不使用统一的初始化语法。g的构造函数中有一个std::cout语句,因此缺少输出表示函数声明而不是g对象实例化。我在注释中用3个数字注释了示例代码。#1和#2编译时#3被注释掉,反之亦然:#includestructf{};structg{g(f){std::cout#1:我认为#1声明了一

c++ - Fedora 22 - 编译 - __atomic_is_lock_free

我尝试在Fedora22上编译一个软件(SuperCollider),但我遇到了一个问题:libsupernova.a(server.cpp.o):Infunction`std::atomic::is_lock_free()const':/usr/include/c++/5.1.1/atomic:212:undefinedreferenceto`__atomic_is_lock_free'collect2:error:ldreturned1exitstatusserver/supernova/CMakeFiles/supernova.dir/build.make:96:recipefo

c++ - VS 编译警告 : result of 32-bit shift implicitly converted to 64 bits

VisualStudio2013发出恼人的(看似无关紧要的)编译警告:#include#definePRECISION16uint64_thi=0;for(uint8_ti=0;i这是编译警告:warningC4334:'改1好像解决了至1.所以我一直在尝试找出1中可能出现的问题.显然,如果i>=PRECISION,那么左移操作将产生未定义的行为。但是,变量i不超过PRECISION-1的值.此外,即使我们假设编译器无法推断出这个事实,我也看不出这个编译警告与左移操作数导致的潜在未定义行为有什么关系。也许它假定PRECISION-1-i的无符号值可以大于31。但是我应该如何告诉编译器它

c++ - C++ `free` 函数是线程安全的吗?

也就是说,如果我的C++应用程序使用malloc在一个线程中分配内存,如果从另一个线程调用,free是否会成功释放内存,或者我可以希望它抛出异常?两个线程属于同一个进程。我正在使用VisualStudio2008。谢谢。 最佳答案 当前标准不对线程做出任何保证。在大多数实现中,malloc和free可以从不同的线程调用。VisualC++堆代码还会序列化对堆的访问,因此您应该没问题。 关于c++-C++`free`函数是线程安全的吗?,我们在StackOverflow上找到一个类似的问题

c++ - 在 valgrind 中将 QSharedPointer 与 new[] 一起使用会产生 "Mismatched free()/delete/delete[]"

我有以下代码:QPair,int>someclass::somefunction(){intsiz=data_size();QSharedPointerbuffer(newunsignedint[siz]);//Fillthebuffer...returnqMakePair(buffer,siz);}在某些时候,此函数返回的QSharedPointer将超出范围,构造函数中设置的指针将被释放。使用valgrind3.6.1,出现“不匹配的free()/delete/delete[]”错误。我对QSharedPointer的使用有什么问题吗?还是我只能忍受这个valgrind警告?

【PG】PostgreSQL 目录结构

目录1软件安装目录2数据文件目录base/:存储每个数据库的基本数据文件global/:包含了全局性质的系统表空间文件pg_tblspc/:包含了表空间的符号链接pg_twophase/:包含了两阶段提交中使用的文件pg_stat_tmp/:包含了一些临时文件,用于存储统计信息pg_stat/:包含了PostgreSQL收集的统计信息文件pg_logical/:包含了用于逻辑复制的文件pg_replslot/:包含了复制插槽信息的文件pg_subtrans/:包含了用于存储子事务信息的文件pg_notify/:包含了用于存储异步通知信息的文件。pg_snapshots/:包含了用于存储快照信息

c++ - 如何在模板参数中将 std::result_of 转换为 decltype

在CppCon2015上,来自Microsoft的S.Lavavejsaid避免使用result_of.但我的情况是,我似乎无法找到合适的替代方案。考虑以下代码。有没有办法改变std::result_of::type使用decltype相反?#include#include#includetemplatestructNopErrCB{constexprToperator()()const{returnT();}};templatestructSafeTaskWrapper{Funcf;ErrCBerrCB;templateautooperator()(T&&...args)->decl

c++ - 为什么 std::result_of 不适用于 lambda?

我设法将我的案例简化为以下最简单的代码:#includeautocall(constauto&f)->typenamestd::result_of::type{returnf();}intmain(){returncall([]{return0;});}gcc-4.9.2和gcc-5.0.0都不编译!两者都认为“调用”应该返回一个lambda函数!不要弄清楚“调用”返回一个int。这是编译器中的错误还是我的C++关闭了?非常感谢。 最佳答案 您的代码不是有效的C++,因为函数参数类型不能是auto,此语法已为ConceptsLite

c++ - 如何正确使用malloc和free memory?

我想知道使用malloc和free的正确/标准方法是什么。free后是否需要设置指针为NULL?基本上,以下两种方式中哪一种是正确的?double*myPtr=(double*)malloc(sizeof(double)*5);.....free(myPtr);或double*myPtr=(double*)malloc(sizeof(double)*5);.....free(myPtr);myPtr=NULL;或者应该是其他方式使用malloc和free?谢谢。 最佳答案 两者都很好。唯一的区别是,如果您第二次尝试释放myPtr,前