为什么这段C语言代码运行错误?

供稿:hz-xin.com     日期:2025-01-14
C语言小问题 段错误是什么?

1. 段错误一般是当你访问了未申请的内存或非法的内存时产生的。主要还是程序的内存管理有问题。
2. 其实打开文件是将文件指针读到一个内存中,来进行操作。lz的这种情况,文件路径有问题,就会使程序中内存的读入产生问题,产生断错误。
3. 建议lz上网搜索关键字“C++内存管理”,再进一步深入这个问题。

问题主要在于你int *w;后只是定义了一个指针,并没有给w分配空间,而你又给*w赋值,导致内存错误了

你的fun函数里,w为什么要定义成一个指针呢
直接
int w;就可以了

想要正常运行就把int main()改成void main()

你用了int main,却没有返回一个int的变量,所以写void表示没有返回值

 

//代码

#include <stdio.h>
void main(){      
 int i=0,j; 
 char s1[20],t;
 while(scanf("%c",&t) && t!='
') 
 {     
  
  s1[i]=t;
  i++;

  }
 for(j=i-1;j>=0;j--){
 
  printf("%c",s1[j]);
 }
}



while(scanf("%c",&t)&&t!='\n')
您是想用t来存储字符,并当t为换行符时调出循环。
不过好像应该t!="\n"吧。

没有错误,运行结果是正确的。

没发现有什么问题啊
你在程序最前面加上
#include "stdafx.h"再试一下

为什么这段程序代码中if(bt)运行时会报错,到底错在哪了?求c语言高手赐 ...
因为"if (bt)"中的这个“bt “是个结构体变量,是从函数形参过来的。1.要么把形参改成指针;2.要么改成 if (&bt);通常不建议直接用函数形参传递结构体对象。

C语言简单程序,帮看看哪错了
错误点有3个:输入一个实数那行有个引号用了中文符,应该改为英文符;最后输出-a那段语句后面没有写“;”;定义变量a时为双精度浮点数,而输入时存为了单精度浮点数,存在溢出故障,会导致运行错误,见下图:应该改为如下 include<stdio.h> main(){ double a;printf("请输入一个实数:");scanf(...

c语言编译无错误,运行结果错误
",a[j]); }}几点注意事项:如果不是没有其他方法的情况下,不要使用全局变量,这是一个良好的习惯 数组定义是必须定义大小,不能用变量定义,如果数组需要在运行时动态分配,请使用malloc动态申请内存(注意使用后用free释放内存)你的截图不是该程序运行截图,如果上课交作业时会很容易看出来 ...

c语言编程,编译无错,运行出错
你的程序有3个问题:1 你所谓的运行时问题,即栈溢出(stack overflow), 解决方法是使用c语言的malloc函数(相当于C++的new操作符)在堆上分配内存(当然最后根据输出文件的答案来看,你确实数据给大了)2 逻辑问题,如楼上各楼所说:s[i]=s[i-1]+A[i];而不是s[i]=s[i-1]+s[i];你...

自己编写的C语言程序 哪里错了?求教
错误代码是这一句s=1\/2*(a+b+c); 乘和除优先级是一样的,程序计算时相当于s=(1\/2)*(a+b+c); 默认1和2都是整形,即(1\/2)为0,这样不管(a+b+c)是多少,s都等于0 可以把1或2修改为1.0或2.0程序就认为(1\/2)是浮点数,值为0.5,这样s就可以算出正确的结果 include<stdio.h...

C语言的运行出现不了的问题是什么问题??
C语言代码运行不出现象可能有很多原因,以下是一些常见的原因和解决方法:编译错误:代码中存在语法错误或类型错误,导致编译失败。可以通过编译器的错误提示信息来定位错误,逐一修正后重新编译。运行错误:代码编译成功,但在运行时出现错误,如数组越界、空指针、除零等错误。可以通过调试工具或打印调试信息...

C语言,这几行代码错误出在哪里?
if(s<250)if要加括号 并且不能连续判断,要加&& if 500 <= s < 1000,d=0.05;正确应为if(500<=s&&s<1000) d=0.05;没仔细看,看了才知道这么恐怖,还不如重新改,另外c语言好像不能在有中文的目录运行 include "stdio.h"void main(){float d,f,w,p,s;printf("输入:货物重 基本...

这段C语言程序为什么运行时显示Debug error和Runtime error?怎么改...
有网友碰到过这样的程序运行显示debug error ,runtime error。。。,问题详细内容为:#include<stdio.h>#include<stdlib.h>intmain(){FILE*fp;structstu{charname[15];charnum[10];floatscore;}student;fp=fopen("info.txt","w");if(fp==NULL){printf("cantopenthefile\\...#include <stdio.h...

为什么c语言程序在运行时出现错误?
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

一段C语言代码不知道错哪儿了,请高手指教
程序中的错误,按照其产生的原因和引起的后果,通常可以分为三种类型:即语法错误、编译运行错误和逻辑错误。一、语法错误 所谓“语法错误”是指由于违反了语言有关语句形式或使用规则而产生的错误。比如错误地使用了关键字、遗漏了某些必需的标点符号、分支语句或循环语句不完整或不匹配等都会导致语法错误。