我定義了一個結構體如下:
typedef struct CommandNode {
int type;
vector<string> command;
CommandNode *next;
} CommandList,*CommandListNodes;
這個結構體中有一個vector,現在想當作鍊錶使用,我不是很清楚對於vector該如何malloc。
自己之前隨便malloc一個1000,有時候會出現下面這樣的問題:
malloc: *** error for object 0xffbbe8909090ffff: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
另外自己不知道這樣使用可以不可以:
CommandListNodes listNodes = new CommandList;
CommandListNodes p = listNodes;
p->command.push_back("121212");
p->type=100;
p->next=new CommandList;
p = p->next;
p->command.push_back("343434");
p->type=200;
p->next=new CommandList;
p = p->next;
以及和malloc有什麼差別,目前我對這部分知識理解較為混亂,網路上沒找到特別合適的內容希望有朋友能梳理一二,謝謝。
typecho2017-06-14 10:53:40
永遠記住C++中的動態記憶體分配是和指標相關的,舉例來說,要存取一個int型指標所指的內容,其記憶體必須是被分配的。這意味著如果一個指標不是用&(取址)或賦值被初始化,那麼它必須用new或malloc之類的動態記憶體分配手段去初始話,保證指標所指記憶體存在。對於vector 這種來說,你既可以用vector