我是新編程C++,請耐心等待:)我的問題是模型(a DGVM)運行直到結束,但是我收到的最後一條消息是「malloc:*對象0x10003b3c4錯誤:釋放指針未分配 *在malloc_error_break中設置斷點以進行調試」。調試器指向該:對象0x10003b3c4的malloc:***錯誤:被釋放的指針未分配***在malloc_error_break中設置斷點以進行調試
clTreePop::~clTreePop() {free(Trees);}
調試器指向free(Trees)
並給出了消息: 「EXC_BAD_INSTRUCTION(代碼= EXC_i386_INVOP,子碼=爲0x0)」。我究竟做錯了什麼?謝謝。
的代碼,可能是這個問題的重要的組成部分:
void clTreePop::addFirstTree(double init_mass)
{
clTree Tree(init_mass, -1. , pop_size_, count_trees_);
Trees = (clTree *) malloc(sizeof(clTree));
Trees[0] = Tree;
pop_size_ ++;
new_born_ ++;
count_trees_ ++;
root_biomass_ += Tree.getBr();
stem_biomass_ += Tree.getBS();
leaf_biomass_ += Tree.getBl();
canopy_area_ += Tree.getCanopyArea();
gc_weighted_ += Tree.getGc();
max_height_ += MyMax(max_height_,Tree.getHeight());
basal_area_ += Tree.getStemArea();
return; }
請編輯您的問題以提供[mcve]。 –
不要在C++中使用'malloc'。 –