1. c语言编程时编译组建都没问题但是运行崩溃了
你的参数传递的不对,max和min已经是指针了,在加上*号就不是指针了。调用fun函数的时候直接传max和min就行,不用带*号。使用&符号传递时虽然满足了类型的要求,但是实际是对指针再次取地址了,参数内容也不对。
2. C语言编程出现运行错误,为什么,应该怎么改
删除第18行
把第17行改成: int t=0,b=0,i;
第15行的*p改成*a
第12行的*p改成a
删除第7行
3. c语言字符串编程,为什么这个程序运行会崩溃
char word[]=""是声明了一个长度为1的char类型数组,而在调用scanf函数的时候自然会溢出崩溃。
我写了一个程序应该能有
#include <stdio.h>
int main()
{
char ch; //每次读取字符的buffer
int count = 0; //单词长度
while(1)
{
scanf("%c", &ch); //读取字符
if(ch == '.')
{
//如果读取的字符为‘.’则打印出最后一个单词的长度并跳出循环结束程序
printf("\t:%d\n", count);
break;
} else
{
if(ch == ' ')
{
//如果读取的字符为‘ ’则打印出当前单词的长度,并归零count
printf("\t:%d\n", count);
count = 0;
} else
{
//如果读取的字符为其他符号则打印出当前符号,并将单词长度+1
printf("%c", ch);
count ++;
}
}
}
return 0;
}
4. 用tc运行c语言程序时死机了怎么办怎么调试
是编译时死机还是运行时?
如果是运行时死机,请查看你的循环语句是否有问题,死循环了。
还有一种可能,指针对象没有free掉,造成内存溢出。
5. 如何解决编程C语言运行后软件突然卡死的现象
突然卡死而不是崩溃.
说明代码中存在死循环或者死锁(多线程), 或者是某个操作耗时太多而导致的伪卡死.
可以开启调试模式,单步跟踪, 检查卡死在哪步中.
然后再针对修改.
6. C语言 程序运行到一半告诉我出现一个问题导致程序停止工作
有点儿意思。原因却出乎意料的简单。
char *rwtab[27]={"main","if","then","while","do"," static","int",
" double","struct","break","else","long","switch","case",
"typedef","char","return","const","float","short","continue",
"for","void","sizeof","default","do"};
少了一项,只有26项,rwtab[26]是空指针,访问到它时,就出错了。错误提示如下:
我没有修改这一句的时候,在你指出出错的地方加了下面一句:
for(n=0;n<27;n++)
if(strcmp(token,rwtab[n])==0)//比较是否关键字
{
printf("Cathch a key-word
"); //
}
出错了,提示信息如下:
我用你的程序做a.txt,生成文件b.txt,c.txt,今天不知什么情况,不能上传。
为什么这样?很玄妙:
rwtab数组少一项,rwtab[26]会引用一个空指针,产生错误。这儿没有语句时,循环没有实质性语句,编译程序优化, 不会编译这个循环的语句,程序中根本没有这几句的内容,因而不会出错。有了语句,就不能省略了,就出错了。
就是这样简单。
另外,你的程序必须当做C++程序编译,否则通不过。C不允许在有实质语句之后定义变量,变量说明要全部放到相应段的最前面,也不支持//注释。我是用DEVC++编译成功的,用WINTC编译失败。
7. c语言运行错误
c1跟c2都是单个字符,但是你在输入的时候,用的是scanf输出,中间用空格键隔开的,而空格也是一个字符,因此在输入y以后,你再次输入的空格被c1存储,即相当于c1c2原来的存储量前移,所以导致c1无输出,c2取代c1的值