草庐IT

dispatch_main_queue_callback

全部标签

c++ - Valgrind 显示内存泄漏且 main 为空,不包含 header

卢本图15.10我的项目存在内存泄漏。我可以找到它们,所以我清理了我的main.cpp文件,现在它看起来像这样:intmain(){return0;}当我使用命令检查内存时:valgrind--leak-check=full--show-leak-kinds=all./MyProgram>log1.txt2>&1我遇到了这些错误:==5219====5219==LEAKSUMMARY:==5219==definitelylost:0bytesin0blocks==5219==indirectlylost:0bytesin0blocks==5219==possiblylost:728by

c++ - .data() 等效于 std::queue

我的问题很简单:是否可以获得指向std::queue容器适配器的底层存储的指针?我正在使用SFML进行一些模拟渲染,我使用SFML渲染目标(sf::RenderTarget)的draw()方法来绘制整串数据。该方法有一个类似于C的接口(interface),需要一个指向数据的指针和一个包含要绘制的元素数量的std::size_t。由于出于某些目的将数据存储在队列中,如果有某种方法可以使该指针指向队列底层存储而不是将数据复制到vector中,我将很高兴。我知道std::queue默认适应容器std::deque,但我不知道循环缓冲区是如何实现的以及它的数据是否连续(所以我可以直接提取指向

c++ - 在 main 之前立即调用一个函数

是否可以注册一个在输入main之前立即运行的函数?我知道所有全局对象都是在进入main之前创建的,所以我可以将代码放在全局对象的构造函数中,但这并不能保证任何特定的顺序。我想做的是将一些注册代码放入构造函数中,但唉,我不知道该放什么:)我猜这是高度系统特定的? 最佳答案 如果您正在使用gcc,您可以在函数上使用constructor属性使其在main之前被调用(参见documentation了解更多详情)。constructordestructorTheconstructorattributecausesthefunctiontob

c++ - main.cpp 是必需的吗?

我试图用cmake编译一个程序,最后我删除了我的main.cpp文件,我刚刚将其复合到另一个文件中,该文件包含我的项目名称(即,我只是将主要功能剪切并粘贴到该文件中)。问题是我得到了main.cpp未发现错误,不确定是否在C++中一个名为main.cpp的文件是必需的,或者我可以拥有一个包含函数main的不同标题的文件吗?编辑我应该注意,我已经删除了对main的任何规范并重新编译了这个程序。 最佳答案 不,您不需要名为main.cpp的文件。除非您正在构建应用程序,否则不需要包含main()的文件。也就是说,如果您只是构建函数库或独

c++ - main 中静态类变量的初始化

我在类中有一个静态变量。我正在全局范围内初始化它,它工作正常。但是当我尝试在主链接器中初始化时抛出错误。为什么会这样。classMyclass{staticintiCount;};intmain(){intMyclass::iCount=1;}并且在全局范围内为什么我必须指定变量类型喜欢intMyclass::iCount=1;在我的类里面,我将iCount定义为整数类型,为什么不呢。Myclass::iCount=1;in//Globalscope 最佳答案 C++标准的$9.4.2/7部分说,Staticdatamembersa

c++ - 程序执行不是从 main() 开始的

我用C开发了很多年,直到现在才发现程序可以在main()函数之前执行代码。这是一个代码示例intgenerateNum(){//Somemaliciouscodehere...return5;}staticintsomeArray[]={generateNum(),generateNum()}intmain(){//Somecodehere...}函数generateNum()在main()之前被调用了两次。我的问题是谁调用了generateNum()?我知道在Windows上是crtexe()这种行为在不同平台上是否标准化:Windows/Linux/Android/iOS?如何获得

c++ - int main(int, char const* const*) 格式正确吗?

根据C++11标准,下列程序是否为良构且可移植的C++?intmain(intargc,charconst*const*argv){} 最佳答案 没有。在纯可移植C++程序中,argv参数(如果存在)没有const修饰符。编辑:请参阅C++11标准草案第3.6.1.2节,其中(在我之前的版本中)指出:Animplementationshallnotpredefinethemainfunction.Thisfunctionshallnotbeoverloaded.Itshallhaveareturntypeoftypeint,buto

c++ - 如何找到程序的 main(...) 函数?

我目前正在将一个包含数百个代码文件和依赖项的项目移植到几个第三方库到MacOs。我终于到了程序编译没有警告或错误的地步,但它似乎没有执行我自己的主要功能。相反,它似乎执行了一些似乎属于第三方的其他主要功能。此函数将一些诊断数据写入控制台并随后退出:(gdb)continueCurrentlanguage:auto;currentlyc++////Thisisanautomaticallygeneratedfile.//Donotedit.//constunsignedshortexpTable[]={0x3c00,0x3c00,0x3c00,0x3c00,0x3c00,0x3c00,0

c++ - 在没有 main() 的情况下运行的 C 或 C++ 程序是否违反标准?

我参与了与我的一位同事的讨论,他说可以在没有main的情况下在C和C++中“运行程序”,并且在托管环境中也是如此。我说过,根据标准,这是完全不正确的。然后他让我看this提到的链接Inseveralyears,anentrywassubmittedthatwassopatentlyabsurdthatitrequiredanewdefinitionofsomeoftherulesforthenextyear.Thisisregardedasahighhonor.Anexampleistheworld'sshortestself-reproducingprogram.Theentrywa

c++ - 在 C++ 中的 main() 之前初始化 vector

我希望能够在main之前初始化大小为“SIZE”的vector。通常我会做staticvectormyVector(4,100);intmain(){//HereIhaveavectorofsize4withalltheentriesequalto100}但问题是我想将vector的第一项初始化为某个值,将另一个初始化为另一个值。有没有简单的方法来做到这一点? 最佳答案 试试这个:staticintinit[]={1,2,3};staticvectorvi(init,init+sizeofinit/sizeofinit[0]);另请