Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 解析标准的新建/删除运算符_C++_Visual Studio 2010_Memory Management - Fatal编程技术网

C++ 解析标准的新建/删除运算符

C++ 解析标准的新建/删除运算符,c++,visual-studio-2010,memory-management,C++,Visual Studio 2010,Memory Management,请参阅此问题了解一些上下文: 我有以下计划: #include <iostream> int main( int argc, char* argv[] ) { std::cout << "Hello world" << std::endl; int *p; p = new int(3); std::cout << *p << std::endl; delete p; return 0

请参阅此问题了解一些上下文:

我有以下计划:

#include <iostream>

int main( int argc, char* argv[] )
{
    std::cout << "Hello world" << std::endl;

    int *p;
    p = new int(3);
    std::cout << *p << std::endl;
    delete p;

    return 0;
}
#包括
int main(int argc,char*argv[])
{

std::cout指定链接器选项
“/DEFAULTLIB:MSVCRT.LIB”
导致程序成功执行。

是否解决了您的问题?如果不对
::operator new
执行相同操作,很难相信库正在重写
::operator delete
@Praetorian,虽然它是相关的,但并不完全正确。在这里,我不尝试使用Abaqus ODB API(尚未)。我相信Abaqus同时定义了
new
delete
。在这种情况下,这更像是一个链接问题。@Derek:在我看来,Praetorian是正确的-在调用Abaqus的init函数之前,你不能使用Abaqus库的
new
delete
。因为标准库是链接的在Abaqus之后,您将获得Abaqus版本,而不是C运行时的版本。这似乎是一种相当疯狂的方式,但是,嘿,我不为Abaqus工作,所以我不知道他们在吸烟、饮酒或思考什么,当他们提出解决方案时-也许它解决了其他一些很难用其他方式解决的问题。@很抱歉,也许我的问题还不清楚。我已经花了好几个月的时间使用Abaqus ODB API,所以我对它的正确初始化非常熟悉。请查看我的代码。我不想使用Abaqus ODB API。我不想使用Abaqus提供的
new
delete
运算符——这些运算符不应该是污染全局名称空间。但是,我发现它们的实现在全局名称空间中,我想绕过它们的实现。这有帮助吗?@Derek,这可以解释问题。应该有其他Abaqus提供的库,其中对应的
操作符delete
定义驻留在其中。您可能会如果在文档中找不到任何相关信息,您需要联系他们的支持人员。尽管如此,Dependency Walker仍显示包含其新操作员定义的Abaqus.dll已链接。