就几行代码为何报错内存不可写入,求修正[续]

OICQshenshi 2012-05-11 11:58:54
#include "stdio.h"
#include "malloc.h"

#define MaxVertexNum 100 //图中顶点的最大个数

typedef char VertexType; //顶点的关系类型,对无权图,用1或0表示相邻与否;对带权图,则为权值类型。
typedef int EdgeType; //弧/边上的权值
typedef struct
{
char vertextype;
}Vertex;
typedef struct
{
EdgeType vertype;
}Arc;
typedef struct
{
Vertex vexs[MaxVertexNum];//顶点表
Arc arcs[MaxVertexNum][MaxVertexNum];//邻接矩阵
int n,e;//图中当前的顶点数和弧/边数

}AdjGragh;



//建立无向图的邻接矩阵
void CreateMGraph(AdjGragh *G)
{
int i,j,k,w;
printf("请输入图中当前的顶点数和弧/边数\n");
scanf("%d%d",&G->n,&G->e);
for(i=0;i<G->n;i++)
G->vexs[i].vertextype='A'; //顶点表初始化
for(i=0;i<G->n;i++)
{
for(j=0;j<G->n;j++)
{
G->arcs[i][j].vertype=0;
}
}

//读入e条边,建立邻接矩阵
for(k=0;k<G->e;k++)
{
//无权图
printf("输入边上的Vi,Vj和权w\n");
scanf("%d%d%d",&i,&j,&w); //输入边(Vi,Vj)上的权w
G->arcs[i][j].vertype=w;
G->arcs[j][i].vertype=w;
}

}

void main()
{
AdjGragh *G=(*AdjGragh)malloc(sizeof(AdjGragh));
CreateMGraph(G);
}

AdjGragh *G=(*AdjGragh)malloc(sizeof(AdjGragh));这句为何报错了呢..请教如何修正
error C2275: 'AdjGragh' : illegal use of this type as an expression
syntax error : missing ';' before identifier 'malloc'
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
OICQshenshi 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

*AdjGragh这个表达式。。。。LZ是什么意思。。。。想要表示的是将返回指针转化为AdjGragh的吧?
那就应该写成AdjGragh *
即改为:
AdjGragh *G=(AdjGragh *)malloc(sizeof(AdjGragh));
LZ试试。。。
[/Quote]
谢谢阿,太激动,写反了,哈哈,送分
liuwons 2012-05-12
  • 打赏
  • 举报
回复
*AdjGragh这个表达式。。。。LZ是什么意思。。。。想要表示的是将返回指针转化为AdjGragh的吧?
那就应该写成AdjGragh *
即改为:
AdjGragh *G=(AdjGragh *)malloc(sizeof(AdjGragh));
LZ试试。。。

33,318

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧