将e = (EdgeNode*)malloc(sizeof(EdgeNode)); 改为用new写
时间: 2023-11-18 17:02:18 浏览: 44
当使用`new`关键字时,我们可以按照以下方式来替代`malloc`函数:
```cpp
e = new EdgeNode;
```
这样,内存分配和对象的构造会同时完成。请注意,在使用`new`时不需要指定要分配的内存大小,编译器会根据类型自动进行计算。在使用`new`后,我们还需要使用`delete`来释放内存:
```cpp
delete e;
```
这将释放内存并调用对象的析构函数。
相关问题
s=(EdgeNode *)malloc(sizeof(EdgeNode));
这是一个动态内存分配的语句,用于在堆上分配一个 EdgeNode 结构体的内存空间,并将其地址赋值给指针 s。其中 sizeof(EdgeNode) 表示 EdgeNode 结构体的大小,malloc 函数会在堆上分配与其大小相等的内存块,并返回其首地址。注意,使用完该内存块后,需要使用 free 函数将其释放,以防止内存泄漏。
if(c==0) { s=(EdgeNode *)malloc(sizeof(EdgeNode)); s->adjvex=i1; s->next=g->adjlist[j1].firstedge; g->adjlist[j1].firstedge=s; } }system("cls");
这是一个 if 判断语句。如果变量 c 的值为 0,那么执行 if 语句块中的代码。该代码块首先创建一个新的 EdgeNode 结构体的指针 s,然后将其 adjvex 成员变量赋值为顶点 i1 的编号,将其 next 成员变量赋值为图 g 中顶点 j1 的邻接表的头指针,最后将 s 赋值为顶点 j1 的邻接表的新头结点。这样就将 i1 和 j1 之间的一条边添加到了图 g 中,如果 c 的值不为 0,则不执行该代码块。最后,使用 system 函数清屏。