这种事情当然经常发生啦。。。。
编译只是静态检查。。。。。
如果你的程序存在
运行时错误的话。
例如:
RuntimeException的话,当然编译时检查不出来啦。
具体问题具体分析,没有源代码,是无法发现到底那里错误了
㈡ C语言程序问题,编译成功可却不能运行,这是为什么
如果你的循环中的i值变化范围没有问题,则修改你的数组定义为:double err[502],B,W[502],W2[502],j,beta[501];你的原始定义都少了一个数组元素,会导致下标越界,进而引发运行时错误。
㈢ 为什么c语言编译明明成功了运行时却说编译失败
这个程序是没有问题的,在VC6.0下是完全可以运行的。
编译成功的话,运行应该也是可以的。
只有你保证你工程中就一个main函数。
另外你运行时编译失败的提示信息是什么,可以贴出来。
㈣ 非常简单C语言 问题 编译成功 但是运行失败
#include<stdio.h>
voidmain()
{
inta;
printf("你还爱我不?1isyes。。。2isno ");
do
{
scanf("%d",&a);
if(a==1)
printf("真听话。。。。 ");
else
{
printf("怎么可以这样呢??再来一遍!! ");
printf("你还爱我不? 1isyes。。。2isno");
}
}
while(a!=1);
}
㈤ c++程序编译成功,运行却失败了。。求助
初步判断,程序错误:
1,你定义了一个Student的数组,三个元素。你定义的时候只给了第一元素进行带参数的构造函数,其他的都是使用默认构造,导致第二第三元素的指针指向常量字符串。这导致你在stu[2].setMember函数调用出错。
2,数组元素默认从0开始,所以,你最后cout stu[3]已经越界了。。。
作如下修改:
void Student::SetMember(int m,char *n)
{
age=m;
if(n)
{
name=new char[strlen(n)+1];
strcpy(name,n);
}
//strcpy(name,n);
}
char* Student::Getname(){
if( !name )
return "unnamed";
else
return name;
}
你再试试。。。
㈥ C语言编写的程序编译成功但运行失败
printf("%s",*name);//很明显是这个错了,为什么要加*号
//改为printf("%s",name);应该就可以
㈦ Java 编译成功但运行失败
(1)设置系统变量JAVA_HOME,使其值是您想要的那个版本的JDK目录。
(2)设置系统变量CLASS_PATH,使其值为“.;%JAVA_HOME%/lib/tools.jar”
(3)在系统变量PATH的前面增加“%JAVA_HOME%/bin;”。
这样就可以了,如果还不行,就有可能是您多次安装过不同的Java版本而造成的,可以按下面方法解决:
Windows操作系统的注册表中
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit和
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
中会看到多个版本,删除多余的,更改这两个项目下的
CurrentVersion键值为你当前的那个版本即可.
㈧ 为什么我的程序编译完成后不能运行
首先确定jdk和自己的系统一致 X86对应32 X64对应64在 此次下载
win7环境变量配置 (Xp等系统略有不同)
1.右键计算机 —> 属性 —> 左边的“高级系统设置” —> “高级”选项卡 —> 下面“环境变量”系统环境变量
变量名 值
classpath 点分号默忘记了-----》 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME\lib\tools.jar;
path 点分号默忘记了-----》 .;%JAVA_HOME%\bin
上面之间复制 .;%JAVA_HOME% 是调用jdk的安装路径
这样 升级jdk后 只需要修改jdk版本号就ok了 即只需要改一个变量值即JAVA_HOME的
下面的变量名复制 安装路径复制
JAVA_HOME F:\Program Files\Java\jdk1.6.0_31
在运行 java和javac命令 正常则为成功
导致运行找不到文件的问题
第一种情况
首先在确定文件名 是否有隐藏后缀名的问题 即文件名实际是X.java.txt 出现这种情况就要 修改操作如下
win7 在控制面板(大图标模式) 找文件夹选项 在点击查看 取消以勾选的隐藏已知文件的扩展名
Xp 把桌面我的电脑打开 在弹出对话框上面找到文件夹选项 后面操作基本相似然后修改 文件后缀名(扩展名)
第二种 情况 范珐顿貉塥股舵瘫罚凯 运行也可以使用下面的 javac 和java命令
你jdk安装在c盘 而文件在其他盘 导致的这时dos界面运行命令应该先是
X: X代表盘符 即进入X盘
cd/X 这X代表文件夹名 进入文件夹
在运行 javac x.java x.java是文件名 编译文件检测语法错误
java x x 代表文件名 但没有扩展名
另外可以下载eclipse 运行java
这样就完成了
㈨ c语言编程,编译成功,但是调试失败~!!怎么回事。。求助~~
楼主你好!
你是不是发现编译没有报错!但是一旦运行就会进入异常而中断报错!
我通过调试发现是栈溢出而造成的异常中断!
这个问题还得从你的 float x[60000][15] 说起。且不算后面定义的变量,通过计算我们知道大概将近3.6M左右!
这个设计到程序的堆栈问题!不知道你是否了解程序的反汇编,简单的说,每个程序都有自己的栈,你定义的局部变量就在这个栈上!而这个栈不是无限的大的,在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M,如果申请的空间超过栈的剩余空间时,将提示overflow!具体可以去了解一下程序的反汇编!
因此,你代码本身没有错误,但是运行不起来是栈溢出了!
如果,你还是想要分配60000个15个成员float类型的数值,那你就得使用malloc来申请空间,malloc申请的空间是在堆上的,malloc函数你自己可以去了解,这个跟栈是不一样的,有兴趣可以去了解堆和栈的区别!
以上是我的看法,希望我的回答对你有帮助!
㈩ 这个JAVA程序编译成功,运行失败。
这个程序派生自Applet,属于Html嵌入式开发程序
用命令行启动这个程序有三种方式
1.加上main方法,用Application方式启动
2.嵌入网页中,用appletviewer HelloWorldApplet.html命令启动
3.在程序顶端加入
//<applet code=HelloWorldApplet width = 100 height = 50>
//</applet>
然后用appletviewer HelloWorldApplet.java命令启动