为什么下面代码在DEV C++中可以编译运行没有问题,在Ubuntu中可以编译却运行时报段错误呢?请高手指点。 10
#include<stdio.h>intmain(){char*p;printf("请输入:");scanf("%s",p);printf("你输入的是:%s",p);}...
#include<stdio.h>
int main()
{
char* p;
printf("请输入:");
scanf("%s",p);
printf("你输入的是:%s",p);
}
哦,哥们自己找到解决的方法了,就是指针没有分配空间初始化,在Ubuntu下声明指针后加了一句:p=(char*)malloc(0);再包含了stdlib.h后就没有问题了。应该是编译器的新旧标准问题。以下是编译运行通过的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char* p;
p=(char*)malloc(0);
printf("请输入:");
scanf("%s",p);
printf("你输入的是:%s",p);
}
关于return 0;我直接没有写,一样通过,没警告没报警,个人感觉main里面的最后return 0;就是个摆设。 展开
int main()
{
char* p;
printf("请输入:");
scanf("%s",p);
printf("你输入的是:%s",p);
}
哦,哥们自己找到解决的方法了,就是指针没有分配空间初始化,在Ubuntu下声明指针后加了一句:p=(char*)malloc(0);再包含了stdlib.h后就没有问题了。应该是编译器的新旧标准问题。以下是编译运行通过的代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char* p;
p=(char*)malloc(0);
printf("请输入:");
scanf("%s",p);
printf("你输入的是:%s",p);
}
关于return 0;我直接没有写,一样通过,没警告没报警,个人感觉main里面的最后return 0;就是个摆设。 展开
2个回答
2016-07-14
展开全部
具体错误呢,你把错误提示也贴出来看看,另外你main函数需要一个return 0;,不然应该会有个警告。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询