搜索
查看: 2426|回复: 6
打印 上一主题 下一主题

c编译的错误

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-28 17:38:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
win7,64位,编译的时候出现这样的错误

q.jpg (40.11 KB, 下载次数: 9)

q.jpg
沙发
发表于 2013-3-28 17:56:02 | 只看该作者
估计是你的代码里访问了非法的内存地址

代码贴出来看看吧
板凳
 楼主| 发表于 2013-3-28 18:04:33 | 只看该作者
rosynirvana 发表于 2013-3-28 17:56
估计是你的代码里访问了非法的内存地址

代码贴出来看看吧

#include <stdio.h>
int main()
{
    char a;
    a=getchar();
    printf("%s",a);
       
}
地板
 楼主| 发表于 2013-3-28 18:04:53 | 只看该作者
null2013 发表于 2013-3-28 18:04
#include
int main()
{

就是这样的
5#
发表于 2013-3-28 19:58:44 | 只看该作者
本帖最后由 rosynirvana 于 2013-3-28 20:05 编辑

a不是一个字符串
C语言的字符串是一个含有'\0'的字符数组

%s要求后面的参数是个char *类型的,而a是int类型的
编译器可能会试图将int转换成char *类型(不想去查标准了……),然后访问了一个非法的内存地址

你可以看看错误信息
在我这里错误代码是c0000005,也就是访问越界了,访问了非法的内存地址

如果说这个该怎么写

putchar(getchar());
就行了
6#
发表于 2013-3-29 16:25:32 | 只看该作者
getchar(); 是读取一个字符,看看你是不是杀毒软件的问题啊
7#
 楼主| 发表于 2013-3-29 21:55:40 | 只看该作者
奥澳  我看看!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表