English 中文(简体)
将一个阵列的内容复制到另一个阵列,造成记忆泄露
原标题:Does copying the content of one array to another cause a memory leak
  • 时间:2009-10-16 18:34:14
  •  标签:

该法典是否造成记忆泄露:

int main(){

   int * a = new int[10];
   int * b  = new int[10];
   for(int i = 0 ; i < 10; i++)
   {
       a[i] = 1;
       b[i] = 1;
   }

   for(int i = 0 ; i < 10; i++)
   {
       a[i] = b[i]; //each a[i] is allocated 4 bytes on heap
                    //when we copy b[i] into a[i] do we loose 
                    //the reference to a[i] (hence a leak), 
                    //and replace that reference
                    //with a reference to a new value?
   }

   delete[] a;
   delete[] b;


}
最佳回答

无。 你只是重复阵列中的价值观。 想把阵列作为两家正在变化的房间的锁户银行——你只复制一只cker子的 what,将其放在另一家银行的cker子里。

问题回答

[根据 无泄漏——你只是复制价值,而不是点。 诸如<代码>a[i]的表述方式:*(a + i);你重新研究(或分配)该记忆点的价值,而不是记忆本身。

<代码>a和bint。 报表<代码>a = 1;和b = 1;为坏。 你们应该给点人分配分类。 页: 1

假设这是你当时所说的话,就没有传闻。

这并不是一个记忆的泄露,因为你总是提到分配给记忆的跳跃。 然而,如果你在删除之前某个地方,你会说什么是记忆泄露。

a = b;

然后,你没有向你们分配的记忆,因为我们的记忆和记忆都显示为b。

没有泄漏。 点数a和b指适当阵列的第一个要素,你不会改变一种和 b的数值。 你们越是把价值观同这些阵列的分子混为一谈,最终摧毁阵列,一切都看着科索沃。





相关问题
热门标签