[問題] C和C++語法混用出現一些怪怪的bug
請問一下版上有經驗的各位
目前小弟是在改一個程式 這個程式全部是用C的語法在寫
我是打算用C++去extend 但出現了很多以前沒有遇過的bug
不知道是不是因為混用的問題
例如:在用vector的時候不先reverse的話 push_back一定會segmentation fault
或是在malloc的時候也會segmentation fault
不知道版上的各位是否有遇過相同的問題或是有什麼建議??
-------------------------------------------------------
重新講仔細一點
struct Tree
{
int id ;
Tree* left ;
Tree* parent ;
Tree* right ;
int* vArray;
}
在parser.cpp裡面我使用宣告了一個 extern vector<int> vec 並寫入了正確的資料
在metis.cpp裡面include <parser.cpp> 也宣告了一個 extern vector<int> vec
想在metis.cpp用剛剛parse完的結果
但在還沒使用這個 vec 的時候 先跑
//**Tree ------> global pointer
//先動態allocateTree的Mem空間(有寫constructor)
Tree* itree ;
Tree* curTPtr ;
sliceTree = new Tree* [numLayer] ;
itree = new Tree [numLayer*n] ;
curTPtr = itree ;
for( i=0 ; i<numLayer ; ++i )
{
*(sliceTree+i) = curTPtr ;
curTPtr += n ;
}
//跑兩個迴圈去更改vArray的值
for( i=0 ; i<numLayer ; ++i )
{
sliceTree[i][0].vArray = new int[size] ;
for( j=0 ; j<numBlock+numPad ; ++j )
{
if( blocks[j].layer == i )
{
sliceTree[i][0].vArray[ivArray] = -1 ;
ivArray++ ;
{
}
}
跑完以後發現他改的不是vArray的值
改到的卻是我parse完以後的 extern vector<int> vec 裡面的值
先謝謝看到這裡的各位大大 因為內容有點長
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.134.141
推
07/21 03:48, , 1F
07/21 03:48, 1F
→
07/21 14:49, , 2F
07/21 14:49, 2F
※ 編輯: osiris1 來自: 140.114.75.128 (07/21 15:09)
推
07/21 17:27, , 3F
07/21 17:27, 3F
※ 編輯: osiris1 來自: 114.37.133.10 (07/21 20:38)
※ 編輯: osiris1 來自: 114.37.133.10 (07/21 20:56)
推
07/21 21:35, , 4F
07/21 21:35, 4F
→
07/21 21:35, , 5F
07/21 21:35, 5F
→
07/21 21:36, , 6F
07/21 21:36, 6F
→
07/21 22:27, , 7F
07/21 22:27, 7F
→
07/21 22:28, , 8F
07/21 22:28, 8F
※ 編輯: osiris1 來自: 114.37.133.10 (07/21 22:28)
→
07/21 22:29, , 9F
07/21 22:29, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章