作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] 为什麽不能用MEMMOVE跟MEMCPY
时间Sat Dec 5 22:41:12 2009
上课讲到的例子:
#include <string>
#include <iostream>
using namespace std;
int main()
{
string *arr = new string[3];
arr[0] = "a"; arr[1] = "b"; arr[2] = "c";
string *brr = new string[3];
memcpy(brr, arr, sizeof(string)*3);
delete []arr;
string s1 = "h";
string s2 = "k";
for (int i = 0; i < 3; ++i)
cout << brr[i] << endl;
}
※ 引述《flax00298 (NI)》之铭言:
: 如果并不是要复制
: 而是要移动一个的物件
: 那我想应该是不会有问题吧?
: 如果今天一个COPY CONSTRUCTOR
: 会让STATIC MEMBER的COUNT之类的或什麽的八拉巴啦造成变动
: 那不是更奇怪吗?
: 有什麽实际的例子吗??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.42.19
1F:推 flax00298:对不起我知道这个违反原则...但是如果这个时候 12/05 23:26
2F:→ flax00298:我用C STYLE去FREE他好像就没问题了?是这样吗== 12/05 23:26
3F:→ ilway25:问题更 大....... 12/05 23:27
4F:→ flax00298:可是这样忌讳呼叫他的DESTRUCTOR不是?感觉还好ˊˇˋ 12/05 23:30
5F:→ flax00298:就不会 12/05 23:31
6F:→ ric2k1:改用 for loop = 一下就好了呀! 12/06 00:32
7F:推 flax00298:是没错啦但我还是很好奇那些记忆体的释放机制是怎样 12/06 00:54