结构体这里
struct MGraph
{...};
然后定义处
MGraph *G = new MGraph();
对于网友采纳答案的质疑:
不知道你是如何坦言“不能用“这三个字的?首先,c++中结构体和类唯一的区别在于默认的访问权限不同,其余完全一样。其次,int *p = new int(5),请问我的new新建的是类还是int型变量?最后,既然用了c++,就不要在用malloc这种C语言的机制了。不知道不要装。
最后对于网友采纳的答案,附一段可编译运行的代码,质问关于new不能用于分配内存给结构体
嗯,谢谢。你能解释一下
MGraph *G;
G = new MGraph;
两个MGraph的意思吗
你这是用C++对吧,C++的struct默认就是class,也就是实际上是对象,只是每个成员的都是public的,而struct在C++会有默认构造函数,new MGraph就是调用strut的默认构造函数在堆空间里创建一个struct,然后MGraph* G拿到这个struct的指针,这个跟malloc(sizeof(MGraph))的作用是一样的。