当前位置:首页 » 编程软件 » 语言编译通过怎么报错

语言编译通过怎么报错

发布时间: 2022-08-04 11:24:24

c语言为什么有时候编译能过,运行却出错

栈溢出啊,还有占位符格式什么的,原因很多,编译通过只是第一步

② 程序编译通过,但是运行报错

它说是 xsting 的 line 929 发生null exception.
那就是library错了.
就算是起因于sgslv1写错, 那也是 xsting 太弱.
这叫做不robust. 可以写信去 Microsoft 抱怨.

③ C语言习题求助,编译通过,运行错误,高分求解

由于 C 语言本身的最大特点就是:其不仅是编程格式上非常地自由,而且在对其进行编译时也是非常自由的(编译器能够放过去很多它认为不是问题的问题),但自由的同时也给程序员带来了程序调试和运行上的困难。有些错误在编译的时候是能够发现的(例如:程序语法错误)、而有些错误在编译程序的时候却是不能够被发现的,只有到了执行程序的时候,才会发现程序的运行结果错误。你可以参考我下面提供的类型,希望能够对你有些帮助。
Warning 警告类型错误有很多种。例如:(1)、虽然定义了某个变量,但是没有对其是否成功初始化就使用、(2)、把赋值符号的等于(=)写成了逻辑相等(==),等等。
例如对于(1)而言:

#include <stdlib.h> /* malloc( ) 函数原型在此头文件中定义 */
void main( )
{
char * p ;
p = (char *)malloc(10000)*sizeof(char) ; /* 为指针变量 p 动态分配内存 */
if( p == NULL ) /* 内存分配失败,返回 NULL */
{ /* 该段代码用于判断是否为指针变量 p 成功分配到内存,是必不可少的 */
printf("Memory allocation failured !\n") ;

exit(1) ; /* 若内存分配失败,退出应用程序,否则的话,严重的话,就有可能使系统崩溃!!! */

}
strcpy(p, "This is a test string") ; /* 内存分配成功,将字符串的内容复制到 p 中 */
}
例如:再对于(2)而言:
void main( )
{
int num ;

scanf("%d", &num) ;

if( num == 10 )

printf("You input number is: 10 !\n" ) ;

else

printf("You input number is not 10 !\n" ) ;

}
但是如果在这个程序中,把双等号:== 误写成了:=,那么该语句就变成了:if( num = 10 )
那么该语句产生的效果就是:无论你在 scanf( ) 语句中输入任何数字(任意的正数也好、负数也好),程序总是把 10 这个整数赋给变量 num,那么其逻辑表达式的值总为 1,所以则该程序的运行结果总是:You input number is: 10。
像这样的程序错误都属于 Warning 错误,在编译的时候是发现不了的,只有到运行程序的时候,才会发现程序的运行结果不正确。

④ C语言程序编译成功了,为什么连接还出错

1 编译阶段,执行的是对单个文件的转换,从源代码转换成二进制文件。
2 链接阶段,将每个源文件转成的二进制文件,及相关的系统库文件共同打包生成可执行文件。
3 从定义上可以看出,链接阶段,出现错误有两种可能:
1) 函数中引用了不存在的函数。
2) 编译环境有问题,导致ld出错。

⑤ c语言程序编译问题 急! 编译通过,但运行报错是怎么回事

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
intmain(void)
{
doublem_grade;
inti;
i=0;
while(i==0)
{
printf("Pleaseenterthescores ",m_grade);
scanf("%lf",&m_grade);
if(m_grade>=0)
{
switch((int)(m_grade/10))
{
case10:
case9:
{
printf("yougetaA!");
break;
}
case8:
{
printf("yougetaB!");
break;
}
case7:
{
printf("yougetaC!");
break;
}
case6:
{
printf("yougetaD!");
break;
}
default:
{
printf("yougetaE!");
}
}
i=1;
}
else
{
printf("Invalidvalues!");
system("cls");
}
}
return0;
}

注意程序中第14行scanf里面的m_grade前面我加了一个&

这个&是取地址运算符了 就是说把你当前输入的值送到m_grade的内存中去

你不加&就意味着输入的值没有地方放 只有加了& 才知道m_grade的地址

⑥ C语言程序,编译成功,但是运行时报错

int main(){
int*a;
int i=0;
int n,k;
scanf("%d,%d",&n,&k); //变量用地址,注意格式控制,输入时两数间也要有逗号,如2,2
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]); //&a[i]
}
patition(a,a[0],4,a[n]);
free(a);
return 0;
}
//程序可能还有其他问题,能执行,但没有输出。

⑦ C语言程序编译通过,运行时出现问题

这个很简单,

scanf("%d",ages);

改为

scanf("%d",&ages);

就行了,scanf还是需要变量地址才行

热点内容
oracle同义词存储过程 发布:2025-02-09 06:00:59 浏览:156
quartz数据库配置 发布:2025-02-09 05:58:07 浏览:114
弯矩图编程 发布:2025-02-09 05:58:06 浏览:186
多个ip段怎么配置网关 发布:2025-02-09 05:57:23 浏览:414
体检中心的无线网密码多少 发布:2025-02-09 05:40:15 浏览:516
脚本语言是编译还是解释 发布:2025-02-09 05:30:24 浏览:643
天墓密码结局是什么 发布:2025-02-09 05:25:52 浏览:438
如何找回因特网帐号的密码 发布:2025-02-09 05:20:05 浏览:374
树莓派源码 发布:2025-02-09 05:07:00 浏览:652
安卓手机为什么搜不到懂球帝 发布:2025-02-09 05:04:42 浏览:818