这段程序哪里有问题?

来源:百度知道 编辑:UC知道 时间:2024/05/04 22:46:58
#include "stdafx.h"
#include "stdlib.h"
int main(int argc, char* argv[])
{

char *a;
int c;
scanf("%c",&a);//把&a换a成问题也存在
c=atoi(a);

printf("%d",c);
printf("Hello World!\n");
return 0;
}

编译没有问题 但是运行的话(输入数字1,3之类)就说"出现问题需要关闭".怎么回事啊?
大哥我是新手 能说明白点吗 不懂啊.....

char *a;是定义了一个字符型指针,而没有给指针分配空间,当然不能够网指针的引用里面写入东西

程序修改如下

int main(int argc, char* argv[])
{

char temp[100],*a=temp;
int c;
scanf("%s",a);
c=atoi(a);

printf("%d",c);
printf("Hello World!\n"); return 0;
}

看来你的编译器是支持新标准的,非常不错

指针

char *a;
该成char a;

char *a;
这个只有地址,没有给她分配空间啊
改成
char a[8];

scanf("%c",a);
kan kan