51k*_*51k 0 c++ stl segmentation-fault
试图跟踪,但没有找到以下代码在VC++中给出"访问冲突"的原因,以及gcc中的分段错误.
#include <vector>
#include <iostream>
using namespace std;
typedef struct node
{
std::string data;
vector <struct node*> child;
}NODE, *PNODE;
int main()
{
PNODE head;
head = (PNODE) malloc(sizeof(NODE));
head->data.assign("hi");
printf("data %s", head->data.c_str());
getchar();
}
Run Code Online (Sandbox Code Playgroud)
使用new而不是malloc在堆上创建C++对象.
下列:
head = (PNODE) malloc(sizeof(NODE));
Run Code Online (Sandbox Code Playgroud)
应该读
head = new NODE;
Run Code Online (Sandbox Code Playgroud)
malloc()这里不起作用的原因是它不调用对象构造函数.
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |