簡體   English   中英

未處理的異常訪問沖突讀取位置/使用結構向量

[英]unhandled exception access violation reading location / using vector of struct

搜索並意識到使用向量導致問題的原因后,我遇到了“未處理的異常訪問沖突讀取位置”,但仍然沒有解決。

.hi中的定義如下:

struct inside
{ 
  double y;
  vector <int> values;

};

struct outside
{ 
     int x;
     vector <inside> subInfo;
     vector <double> d;


};

在.cpp中:

   vector <outside> mainInfo;

       ....
   // method_inti called one time just ...
   method_inti()
   {
        for(int i=1;i<=4;i++)
         {
            outside obj;
            obj.x = i;
            mainInfo.push_back(obj);
         }

   }


      ....

//方法填充被調用多次(非常多的調用..)

  method_fill()
  {
      ... 

     for(i = 1; i <= 4; i++)
     {
        for (int j=0;j< mainInfo.size();j++) // here surly size = 4
        {
           if(mainInfo[j].x == i)
            {    

                inside obj;
                obj.y = i+1;
                obj.values.push_back(10.0);

                mainInfo[j].d.push_back(5.0);
                mainInfo[j].subInfo.push_back(obj);     

          }

       }
     }
       ...

   } 

   // update n val method also called many times..        
    updateNval_method(int t)
     { 
         double n;

        for (int i=0; i< mainInfo.size();i++) 
        {
           if(mainInfo[i].x == t)
            { 
               n= mainInfo[i].d[(mainInfo[i].d.size())-1];
            }
         }

     }

在行n= mainInfo[i].d[(mainInfo[i].d.size())-1]; 您要從d.size()中減去1以獲得數組索引,但不能保證d.size()> = 1。

如果d恰好不包含任何元素,則您嘗試訪問的數組索引為-1,這將引發該異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM