IP_ADAPTER_INFO *ptr=new IP_ADAPTER_INFO[100];
Run Code Online (Sandbox Code Playgroud)
如果我免费使用
delete ptr;
Run Code Online (Sandbox Code Playgroud)
它会导致内存泄漏,如果不是那么为什么?
这是VS2005生成的反汇编代码
; delete ptr;
0041351D mov eax,dword ptr [ptr]
00413520 mov dword ptr [ebp-0ECh],eax
00413526 mov ecx,dword ptr [ebp-0ECh]
0041352C push ecx
0041352D call operator delete (4111DBh)
00413532 add esp,4
; delete []ptr;
00413535 mov eax,dword ptr [ptr]
00413538 mov dword ptr [ebp-0E0h],eax
0041353E mov ecx,dword ptr [ebp-0E0h]
00413544 push ecx
00413545 call operator delete[] (4111E5h)
0041354A add esp,4
Run Code Online (Sandbox Code Playgroud) 我是一名Perl5程序员已有7年了,现在我正在努力学习C++.一些C++语法很难让我理解并以C++方式思考.
例如:在Perl中,您可以混合数组中的数据
@array = (1,"string",5.355);
Run Code Online (Sandbox Code Playgroud)
您可以将任何值分配给标量变量:
$var = 1;
$var = "string";
$var = \$reference_to_scalar;
Run Code Online (Sandbox Code Playgroud)
有很多例子.
我的一个朋友向我推荐了Bruce Eckel的"Thinking of C++"一书,但我没有任何C背景,而且我很难理解一些事情.
所以我的问题是 - 你能不能就这种情况向我推荐一本书.我不想学习C.我理解OOP(我越来越熟悉C++ oop),我理解指针(和一些算术)和引用(在Perl中广泛使用)的要点.
我不需要傻瓜手册(是什么int,bool,double,if,while),我只是需要一个方向如何学习C++从Perl程序员的角度来看,因为我敢肯定,有很多像我一样.
先感谢您.
编辑:感谢所有推荐的书籍和答案,我将尝试使用"Accelerated C++".我将从头开始尝试将我的思维流程改为C++.我添加了"初学者"标签.