std :: queue memory deallocation不起作用

时间:2014-04-21 09:39:27

标签: c++ memory-management memory-leaks stl

我有一个基本类,我从一个线程推送成员并从另一个线程弹出。但是当我使用内存泄漏验证程序调试时,我看到内存未被释放,验证器显示泄漏问题处于推动阶段。在我的class我有一个数组,但它不是动态的。

My_class{

    int my_var1;
    int my_var22; 
    int   my_array[100000];

    My_class& operator=(const My_class& old){

    if(this!=&old){

        var1=old.var1;
        var2=old.var2;
        memcpy(my_array,old.my_array,size)  //size is fixed so it is same as 100000     
    }

    My_class(const My_class &copy){

      *this=copy;
    }
};

 //here i am reading data from udp and copy from another array to my var1;
My_class var1;
My_class var2;
int udp_array[];

//thread one

while(hasPendingdata()){

udp_array.fill();
//my_array is filled after loop
} 
//than 

mem_cpy(var1.my_array,udp_array,size);

my_mutex.lock();

   std::my_queue.push(var1);

my_mutex.unlock();


//thread 2
my_mutex.lock();

  var2=my_queue.front();
  my_queue.pop();
my_mutex.unlock();

0 个答案:

没有答案