簡體   English   中英

在結構內部為指針向量分配內存

[英]Allocate memory for a vector of pointers inside of a structure

我有以下結構:

struct node{
  char name;
  vector<node*> children;

  void addChild(char name){
    node *newChild = (node*)malloc(sizeof(node));
    newChild->name = name;
    children.push_back(newChild);
  }
};

上面的代碼可以編譯,但是每當使用addChild創建的任何節點調用addChild時,都會以std :: bad_alloc提示符崩潰。

在我看來,我也應該以某種方式為向量分配內存,但是我不確定如何去做。

我是一個“初學者”,對內存分配知之甚少,因此不勝感激。

提前致謝。

不要在C ++中使用mallocfree 特別是對於需要對象有自己的構造函數調用,因為malloc 調用構造函數。

在您的情況下,這意味着不會調用std::vector構造函數,並且在使用vector時會有未定義的行為

使用newdelete代替。

任何好的初學者書籍都應該告訴您這一點。

暫無
暫無

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

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