啊哈磊_编程从这里起步

标题: c编译的错误 [打印本页]

作者: null2013    时间: 2013-3-28 17:38
标题: c编译的错误
win7,64位,编译的时候出现这样的错误

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

q.jpg

作者: rosynirvana    时间: 2013-3-28 17:56
估计是你的代码里访问了非法的内存地址

代码贴出来看看吧
作者: null2013    时间: 2013-3-28 18:04
rosynirvana 发表于 2013-3-28 17:56
估计是你的代码里访问了非法的内存地址

代码贴出来看看吧

#include <stdio.h>
int main()
{
    char a;
    a=getchar();
    printf("%s",a);
       
}

作者: null2013    时间: 2013-3-28 18:04
null2013 发表于 2013-3-28 18:04
#include
int main()
{

就是这样的
作者: rosynirvana    时间: 2013-3-28 19:58
本帖最后由 rosynirvana 于 2013-3-28 20:05 编辑

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

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

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

如果说这个该怎么写

putchar(getchar());
就行了
作者: 啊哈磊    时间: 2013-3-29 16:25
getchar(); 是读取一个字符,看看你是不是杀毒软件的问题啊
作者: null2013    时间: 2013-3-29 21:55
奥澳  我看看!





欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2