問題點:
STACK * temp_stack=new STACK(); memcpy(temp_stack,this,sizeof(STACK)); delete temp_stack;
這三行程式碼,乍看之下好像沒甚麼不對。
可是當你按下Debug時,問題就來了。
其實解決分法就是...
用C的方法去做,如下:
STACK * temp_stack=(STACK *)malloc(sizeof(STACK)); memcpy(temp_stack,this,sizeof(STACK)); free(temp_stack);
問題點之二:
void operator =(datas & val)
{
memcpy(this,&val,sizeof(datas));
};
解決方法就是別用memcpy...
雖然C歸C,C++歸C++。
但是有些在C上很好用的方法,用在C++上卻會出問題。
所以寫程式還是謹慎點。
順帶一提…Release程式是不會有這個問題的。
可是我有潔癖…
查資料時得到的豆知識
[ 0xCCCCCCCC ] 沒有被初始化的stack memory
[ 0xCDCDCDCD ] 沒有被初始化的heap memory
[ 0xFEEEFEEE ] 意指freefree, 就是已歸還的heap memory

沒有留言:
張貼留言