在c ++中使用memcpy时内存泄漏

时间:2016-02-06 00:28:26

标签: c++ memory-leaks operator-overloading memcpy

这是我的伪代码:

cart += &product1;

现在我要做的就是将所有类型的产品放入购物车中 void operator+=(Produs * prod){ Produs ** copie = new Produs*[this->n]; for (int i = 0; i < n; i++) memcpy(&copie[i], &produse[i], 4); this->n += 1; this->produse = new Produs*[this->n]; for (int i = 0; i < this->n - 1; i++) memcpy(&produse[i], &copie[i], 4); memcpy(&produse[n - 1], &prod, sizeof(copie[0])); } void operator+=(ProdusDiscount * prod){ Produs ** copie = new Produs*[this->n]; for (int i = 0; i < n; i++) memcpy(&copie[i], &produse[i], 4); this->n += 1; this->produse = new Produs*[this->n]; for (int i = 0; i < this->n - 1; i++) memcpy(&produse[i], &copie[i], 4); memcpy(&produse[n - 1], &prod, sizeof(copie[0])); } (其中product1可以是Product或ProductDiscount类型)

我是通过重载+ =运算符来实现的,这里是代码:

[root@glczwe-sp230001 my.perlur.cz]# php artisan make:migration create_customers_table --create=customers
[root@glczwe-sp230001 my.perlur.cz]# php artisan list
[root@glczwe-sp230001 my.perlur.cz]# 

现在,我想知道是否有另一种方法可以做到这一点。我还想知道当我使用memcpy时是否会产生内存泄漏,如果是这样,我该如何避免它。

0 个答案:

没有答案