错误、漏洞、问题 - 页 2011

 
我的理解是否正确,这样的数组不能被合理地初始化?
class A {};

A* const Array[] = {NULL};

而且只作为函数/方法的输入参数才有意义?

void f( const A* const &Array[] );
 

MT4 build 1090

void OnStart()
{
   ResetLastError();
   ObjectCreate(ChartID(),"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(ChartID(),"SomeName",OBJ_ARROW,0,0,0);
   Print("Ошибка повторного создания объекта на ТЕКУЩЕМ чарте Error=",GetLastError());
   ObjectDelete(ChartID(),"SomeName");

   ResetLastError();
   ObjectCreate(ChartFirst(),"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(ChartFirst(),"SomeName",OBJ_ARROW,0,0,0);
   Print("Ошибка повторного создания объекта на ПЕРВОМ чарте Error=",GetLastError());
   ObjectDelete(ChartFirst(),"SomeName");

   ResetLastError();
   ObjectCreate(ChartNext(ChartFirst()),"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(ChartNext(ChartFirst()),"SomeName",OBJ_ARROW,0,0,0);
   Print("Ошибка повторного создания объекта на НЕ ТЕКУЩЕМ чарте Error=",GetLastError());
   ObjectDelete(ChartNext(ChartFirst()),"SomeName");

   ResetLastError();
   ObjectCreate(0,"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(0,"SomeName",OBJ_ARROW,0,0,0);
   Print("Ошибка повторного создания объекта на ТЕКУЩЕМ чарте Error=",GetLastError());
   ObjectDelete(0,"SomeName");
   
   ResetLastError();

   Print("__MQL4BUILD__ = ",__MQL4BUILD__," TERMINAL_BUILD = ",TERMINAL_BUILD);
}

当前图表 上重新 创建对象 时出错Error=4200


在非当前图表上重新创建一个对象时出错 Error=0

错误?
 

检查脚本。

在终端中运行所有的图表,用一个重复的名字创建一个对象,并在日志中产生一个错误。

它还会检查图表上创建的对象的 搜索速度。

void OnStart()
  {

   Print("__MQL4BUILD__ = ",__MQL4BUILD__," TERMINAL_BUILD = ",TERMINAL_BUILD);

   ResetLastError();
//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);
//создадим дублирующий объект для графика и выведем ошибку
   ObjectCreate(prevChart,"SomeName",OBJ_ARROW,0,0,0);
   ObjectCreate(prevChart,"SomeName",OBJ_ARROW,0,0,0);
   Print(" Error on creating duplicate object - GetLastError=",GetLastError());
   ObjectDelete(prevChart,"SomeName");
   ObjectFindSearchBench(1000,prevChart);//SearchBench
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     {

      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i," ",ChartSymbol(currChart)," ID =",currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
                          //создадим дублирующиеся объекты
      ResetLastError();
      ObjectCreate(prevChart,"SomeName",OBJ_ARROW,0,0,0);
      ObjectCreate(prevChart,"SomeName",OBJ_ARROW,0,0,0);
      Print(" Error on creating duplicate object - GetLastError=",GetLastError());
      ObjectDelete(prevChart,"SomeName");
      ObjectFindSearchBench(1000,prevChart);//SearchBench
      i++;// не забудем увеличить счетчик 
     }


  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
ulong ObjectFindSearchBench(const int Amount=1 e3,long chart=0)
  {
   int b=0,f=0;
   
   ResetLastError();
   if(chart==0) chart=ChartID();
   const ulong StartTime=GetMicrosecondCount();
//создадим объект и потом найдем его Amount раз
   ObjectCreate(chart,"SomeName",OBJ_ARROW,0,0,0);

   for(int w=0;w<Amount;w++)
     {
      if(ObjectFind(chart,"SomeName")>=0)
        {
         b++;
        }
      else f++;
     }
   Print("Time to search Object by name ",Amount," times is ",GetMicrosecondCount()-StartTime," microseconds. ChartID=",chart," found obj: ",b," not found obj: ",f,chart==ChartID()?" CURRENT CHART":"");
   return(GetMicrosecondCount() - StartTime);
  }

请看看你是否能运行这个脚本。

我的日志。

0 19:51:01.427 test CHFJPY.e,H1: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5

0 19:51:01.427 test CHFJPY.e,H1: ChartFirst = EURCAD.e ID = 131498872250507535

0 19:51:01.427 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.443 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是15129 微秒。ChartID=131498872250507535 找到obj: 1000 没有找到obj: 0

0 19:51:01.443 test CHFJPY.e,H1: 0 EURCAD.e ID=131500664876581320

0 19:51:01.443 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.463 test CHFJPY.e,H1: 按名称搜索对象1000次的时间是20278 微秒。ChartID=131500664876581320 找到obj: 1000 没有找到obj: 0

0 19:51:01.463 test CHFJPY.e,H1: 1 CADJPY.e ID=131502896347051608

0 19:51:01.463 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.479 test CHFJPY.e,H1: 按名称搜索对象1000次的时间是15825 微秒。ChartID=131502896347051608 找到obj: 1000 没有找到obj: 0

0 19:51:01.479 test CHFJPY.e,H1: 2 EURCAD.e ID=131502897682567227

0 19:51:01.479 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.529 test CHFJPY.e,H1: 按名称搜索对象1000次的时间是50372微秒。ChartID=131502897682567227 找到obj: 1000 没有找到obj: 0

0 19:51:01.529 test CHFJPY.e,H1: 3 GBPJPY.e ID=131505457001351910

0 19:51:01.529 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.541 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是11587 微秒。ChartID=131505457001351910 找到obj: 1000 没有找到obj: 0

0 19:51:01.541 test CHFJPY.e,H1: 4 GBPCHF.e ID=131505572251554422

0 19:51:01.541 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.554 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是13026 微秒。ChartID=131505572251554422 找到obj: 1000 没有找到obj: 0

0 19:51:01.554 test CHFJPY.e,H1: 5 AUDCHF.e ID=131505732457965009

0 19:51:01.554 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.567 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是12949 微秒。ChartID=131505732457965009 找到obj: 1000 没有找到obj: 0

0 19:51:01.567 test CHFJPY.e,H1: 6 USDCHF.e ID=131506110968531490

0 19:51:01.567 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.587 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是20701 微秒。ChartID=131506110968531490 找到obj: 1000 没有找到obj: 0

0 19:51:01.587 test CHFJPY.e,H1: 7 AUDUSD.e ID=131507551330304303

0 19:51:01.587 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.606 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是18558 微秒。ChartID=131507551330304303 找到obj: 1000 没有找到obj: 0

0 19:51:01.606 test CHFJPY.e,H1: 8 EURCAD.e ID=131507869928472695

0 19:51:01.606 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.619 test CHFJPY.e,H1: 按名称搜索对象1000次的时间是13219 微秒。ChartID=131507869928472695 找到obj: 1000 没有找到obj: 0

0 19:51:01.619 test CHFJPY.e,H1: 9 EURAUD.e ID=131507916092399918

0 19:51:01.619 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=0

0 19:51:01.632 test CHFJPY.e,H1: 按名称搜索对象1000次的时间是12294 微秒。ChartID=131507916092399918 找到obj: 1000 没有找到obj: 0

0 19:51:01.632 test CHFJPY.e,H1: 10 CHFJPY.e ID=131508222052591588

0 19:51:01.632 test CHFJPY.e,H1: 创建重复对象时出错 - GetLastError=4200

0 19:51:01.632 test CHFJPY.e,H1: 按名称搜索物体1000次的时间是98 微秒。ChartID=131508222052591588 找到obj: 1000 没有找到obj: 0目前的图表


我的搜索速度相差100-500倍...

你呢?

 
Kirill Belousov:

检查脚本。

在终端中运行所有的图表,用一个重复的名字创建一个对象,并记录一个错误。

它还会检查图表上创建的对象的 搜索速度。

请看看你是否能运行这个脚本。


我的搜索速度以100-500的系数变化...

你呢?


0       19:59:35.973    PeriodConverter GBPUSDf,M15: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5
0       19:59:35.973    PeriodConverter GBPUSDf,M15: ChartFirst = AUDUSDf ID = 130936784496551158
0       19:59:35.973    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.013    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 32430 microseconds. ChartID=130936784496551158 found obj: 1000 not found obj: 0
0       19:59:36.013    PeriodConverter GBPUSDf,M15: 0 USDCADf ID =130936784496551160
0       19:59:36.013    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.023    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 11738 microseconds. ChartID=130936784496551160 found obj: 1000 not found obj: 0
0       19:59:36.023    PeriodConverter GBPUSDf,M15: 1 GBPAUDf ID =130936784496551163
0       19:59:36.023    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.033    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 7645 microseconds. ChartID=130936784496551163 found obj: 1000 not found obj: 0
0       19:59:36.033    PeriodConverter GBPUSDf,M15: 2 EURUSDf ID =130936784496551164
0       19:59:36.033    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.043    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 8734 microseconds. ChartID=130936784496551164 found obj: 1000 not found obj: 0
0       19:59:36.043    PeriodConverter GBPUSDf,M15: 3 EURJPYf ID =130936784496551165
0       19:59:36.043    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.053    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 12249 microseconds. ChartID=130936784496551165 found obj: 1000 not found obj: 0
0       19:59:36.053    PeriodConverter GBPUSDf,M15: 4 EURCADf ID =130936784496551166
0       19:59:36.053    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.063    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 15107 microseconds. ChartID=130936784496551166 found obj: 1000 not found obj: 0
0       19:59:36.063    PeriodConverter GBPUSDf,M15: 5 USDCHFf ID =130936784496551167
0       19:59:36.063    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.093    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 31361 microseconds. ChartID=130936784496551167 found obj: 1000 not found obj: 0
0       19:59:36.093    PeriodConverter GBPUSDf,M15: 6 GBPUSDf ID =130936784496551169
0       19:59:36.093    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=4200
0       19:59:36.093    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 156 microseconds. ChartID=130936784496551169 found obj: 1000 not found obj: 0 CURRENT CHART
0       19:59:36.093    PeriodConverter GBPUSDf,M15: 7 AUDCADf ID =130936784496551170
0       19:59:36.093    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.103    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 10455 microseconds. ChartID=130936784496551170 found obj: 1000 not found obj: 0
0       19:59:36.103    PeriodConverter GBPUSDf,M15: 8 CADCHFf ID =130936784496551171
0       19:59:36.103    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.133    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 28968 microseconds. ChartID=130936784496551171 found obj: 1000 not found obj: 0
0       19:59:36.133    PeriodConverter GBPUSDf,M15: 9 NZDCADf ID =130936784496551175
0       19:59:36.133    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.153    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 18735 microseconds. ChartID=130936784496551175 found obj: 1000 not found obj: 0
0       19:59:36.153    PeriodConverter GBPUSDf,M15: 10 NZDCHFf ID =130936784496551176
0       19:59:36.153    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.163    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 10593 microseconds. ChartID=130936784496551176 found obj: 1000 not found obj: 0
0       19:59:36.163    PeriodConverter GBPUSDf,M15: 11 NZDUSDf ID =130936784496551178
0       19:59:36.163    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.193    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 23403 microseconds. ChartID=130936784496551178 found obj: 1000 not found obj: 0
0       19:59:36.193    PeriodConverter GBPUSDf,M15: 12 EURNZDf ID =130936912624549660
0       19:59:36.193    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.213    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 19404 microseconds. ChartID=130936912624549660 found obj: 1000 not found obj: 0
0       19:59:36.213    PeriodConverter GBPUSDf,M15: 13 EURAUDf ID =130936912624549662
0       19:59:36.213    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       19:59:36.213    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 7570 microseconds. ChartID=130936912624549662 found obj: 1000 not found obj: 0
0       19:59:36.213    PeriodConverter GBPUSDf,M15: uninit reason 0
0       19:59:36.223    Script PeriodConverter GBPUSDf,M15: removed


0       20:00:18.966    Script PeriodConverter GBPUSDf,M15: loaded successfully
0       20:00:18.986    PeriodConverter GBPUSDf,M15: initialized
0       20:00:18.986    PeriodConverter GBPUSDf,M15: __MQL4BUILD__ = 553 TERMINAL_BUILD = 5
0       20:00:18.986    PeriodConverter GBPUSDf,M15: ChartFirst = AUDUSDf ID = 130936784496551158
0       20:00:18.986    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.036    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 42453 microseconds. ChartID=130936784496551158 found obj: 1000 not found obj: 0
0       20:00:19.036    PeriodConverter GBPUSDf,M15: 0 USDCADf ID =130936784496551160
0       20:00:19.036    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.046    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 17436 microseconds. ChartID=130936784496551160 found obj: 1000 not found obj: 0
0       20:00:19.046    PeriodConverter GBPUSDf,M15: 1 GBPAUDf ID =130936784496551163
0       20:00:19.046    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.086    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 33961 microseconds. ChartID=130936784496551163 found obj: 1000 not found obj: 0
0       20:00:19.086    PeriodConverter GBPUSDf,M15: 2 EURUSDf ID =130936784496551164
0       20:00:19.086    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.096    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 8201 microseconds. ChartID=130936784496551164 found obj: 1000 not found obj: 0
0       20:00:19.096    PeriodConverter GBPUSDf,M15: 3 EURJPYf ID =130936784496551165
0       20:00:19.096    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.106    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 13671 microseconds. ChartID=130936784496551165 found obj: 1000 not found obj: 0
0       20:00:19.106    PeriodConverter GBPUSDf,M15: 4 EURCADf ID =130936784496551166
0       20:00:19.106    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.136    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 28041 microseconds. ChartID=130936784496551166 found obj: 1000 not found obj: 0
0       20:00:19.136    PeriodConverter GBPUSDf,M15: 5 USDCHFf ID =130936784496551167
0       20:00:19.136    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.146    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 12396 microseconds. ChartID=130936784496551167 found obj: 1000 not found obj: 0
0       20:00:19.146    PeriodConverter GBPUSDf,M15: 6 GBPUSDf ID =130936784496551169
0       20:00:19.146    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=4200
0       20:00:19.146    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 159 microseconds. ChartID=130936784496551169 found obj: 1000 not found obj: 0 CURRENT CHART
0       20:00:19.146    PeriodConverter GBPUSDf,M15: 7 AUDCADf ID =130936784496551170
0       20:00:19.146    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.236    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 91767 microseconds. ChartID=130936784496551170 found obj: 1000 not found obj: 0
0       20:00:19.236    PeriodConverter GBPUSDf,M15: 8 CADCHFf ID =130936784496551171
0       20:00:19.236    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.296    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 53496 microseconds. ChartID=130936784496551171 found obj: 1000 not found obj: 0
0       20:00:19.296    PeriodConverter GBPUSDf,M15: 9 NZDCADf ID =130936784496551175
0       20:00:19.296    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.378    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 80612 microseconds. ChartID=130936784496551175 found obj: 1000 not found obj: 0
0       20:00:19.378    PeriodConverter GBPUSDf,M15: 10 NZDCHFf ID =130936784496551176
0       20:00:19.378    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.418    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 42953 microseconds. ChartID=130936784496551176 found obj: 1000 not found obj: 0
0       20:00:19.418    PeriodConverter GBPUSDf,M15: 11 NZDUSDf ID =130936784496551178
0       20:00:19.418    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.438    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 19186 microseconds. ChartID=130936784496551178 found obj: 1000 not found obj: 0
0       20:00:19.438    PeriodConverter GBPUSDf,M15: 12 EURNZDf ID =130936912624549660
0       20:00:19.438    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.448    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 9539 microseconds. ChartID=130936912624549660 found obj: 1000 not found obj: 0
0       20:00:19.448    PeriodConverter GBPUSDf,M15: 13 EURAUDf ID =130936912624549662
0       20:00:19.448    PeriodConverter GBPUSDf,M15:  Error on creating duplicate object - GetLastError=0
0       20:00:19.498    PeriodConverter GBPUSDf,M15: Time to search Object by name 1000 times is 47959 microseconds. ChartID=130936912624549662 found obj: 1000 not found obj: 0
 
Vitaly Muzichenko:

森卡拿球

看起来像HE :)

 
Kirill Belousov:

森卡拿球

看起来像HE :)

什么都不懂,但还是很有趣。

 
Vitaly Muzichenko:

什么都不懂,但还是很有趣。

错误。

当在一个非当前图表上创建一个重复的对象时,没有错误4200(它确实给出了当前的对象--[见日志中的 "CURRENT CHART"])。

以及发现在最近的图表中寻找一个对象比寻找当前的对象要花费500倍的时间。

а :)因为事实证明,我不是唯一的人

 
fxsaber:
我的理解是否正确,这样的数组不能被合理地初始化?

而且只作为函数/方法的输入参数才有意义?

class A {
public:
        void f() {}
};
A* const a[10] = { NULL };
void OnStart()
{
        A *aa = new A;
         ((A *)a[ 9 ]) = aa; //нет ошибки при компиляции
               a[ 9 ].f();   //нет ошибки при выполнении
        Print( a[ 9 ] == aa ); //Результат: false
}

人们会认为这是可能的,但正如你从这个例子中看到的那样--导致难以捕捉的错误

 
A100:
((A *)a[ 9 ]) = aa; //нет ошибки при компиляции

是的,这里有一个编译器错误,但没有执行超过这一点--无效的指针

所以,事实上,没有初始化是可能的。

 
fxsaber:

是的,这里有一个编译器错误,但执行的时候没有超过这个地方--无效的指针。

那么,错误也在于,对于32位版本(我正好有这样的版本),执行时没有错误。无效指针--只有当你用一个成员来增强类的时候,比如说int i。

原因: