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

OICQshenshi 2012-05-11 11:15:23
#include "stdio.h"

typedef struct VertNode
{
char VertexType;
}VertNode;

void main()
{
VertNode *vertNode;
printf("请输入一个顶点类型字符:\n");
scanf("%s",&vertNode->VertexType);

}

为何报错内存不可写入,求修正
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqclark 2012-05-11
  • 打赏
  • 举报
回复
#include <stdio.h> //引用系统头文件最好用<>,以减少搜索头文件时间
#include <stdlib.h>
typedef struct VertNode
{
char VertexType;
}VertNode;

void main()
{
VertNode *vertNode; //没分配内存空间,
改为VertNode *vertNode = (VertNode*)malloc(sizeof(VertNode));
或 VertNod vertNode;
printf("请输入一个顶点类型字符:\n");
scanf("%s",&vertNode->VertexType); //最好以%c输入,因数你定义不是数组

}
OICQshenshi 2012-05-11
  • 打赏
  • 举报
回复
非常感谢,搞定了
CandPointer 2012-05-11
  • 打赏
  • 举报
回复
VertNode *vertNode = (VertNode *)malloc(sizeof(VertNode));
OICQshenshi 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

VertNode *vertNode;

没分配内存

VertNode *vertNode = malloc(sizeof(VertNode));

或者 VertNode vertNode;
[/Quote]
改后的
void main()
{

VertNode *vertNode = malloc(sizeof(VertNode));
printf("请输入一个顶点类型字符:\n");
scanf("%s",&vertNode->VertexType);

}

还是不行啊
error C2440: 'initializing' : cannot convert from 'void *' to 'struct VertNode *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
CandPointer 2012-05-11
  • 打赏
  • 举报
回复
VertNode *vertNode;

没分配内存

VertNode *vertNode = malloc(sizeof(VertNode));

或者 VertNode vertNode;

33,311

社区成员

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

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