c语言编程时候出现“应用程序错误”怎么办

作者&投稿:通鸣 (若有异议请与网页底部的电邮联系)
求C语言编程高手指教。。我的程序错在哪里???运行的时候出现问题啊~

程序已经帮你改好
#include
#include
void zhaoweizhi(char*p,int n,char s); //找位置函数声明
void main()
{
int n,i=0;

char *p=NULL,m;
printf("请输入字符串中字符的个数:");
scanf("%d",&n);
//p=(char*)malloc(n*sizeof(int)); /*向内存申请数组的内存空间*/
p=(char*)malloc((n+1)*sizeof(char)); /*你应该申请 char 字节的内存,否则使用 int 会浪费内存空间,申请 n+1 会给系统自动添加的 \0 也同时申请,否则字符串结束位置可能会出错 */

if(p==NULL)
{
printf("没有足够的内存空间");
exit(0);
}
printf("请输入这个字符串:"); /*输入元素的初始值*/
/*
for(i=0;i<n;i++)
scanf("%c",p+i);
*/
scanf("%s",p);

printf("你输入的字符串为:");
printf("%s
",p);

/*
for(i=0;i<n;i++)
printf("%c",p[i]);
*/
getchar(); /*使用 scanf 输入字符 会把 回车符号也加进去,导致你无法输入 正确却的字符 使用 getchar() 接受回车 */
printf("请输入你要查找的字符:");
scanf("%c",&m);

zhaoweizhi(p,n,m); //运用找位置函数

delete p;//动态申请的内存需要 最后 释放

}
void zhaoweizhi(char*p,int n,char s)
{
int j,sigma=0;
int flag = 0;//使用标志判断即可
for(j=0;j<n;j++)
{
if(s==p[j])
{
printf("你输入的这个字符在字符串中为第%d个
",j+1);
flag = 1;
break;
}
}
if(!flag)
{
printf("-1
");
}
/* 冗余
for(j=0;j<n;j++)
{
if(s!=p[j])
sigma+=1;
}
if(sigma==n)
printf("-1");
*/
}

void main()
{
int n,i;

char *p=NULL,m;
printf("请输入字符串中字符的个数:");
scanf("%d",&n);
fflush(stdin); /* 清除缓冲 */
p=(char*)malloc((n+1)*sizeof(int)); /*向内存申请数组的内存空间*/
if(p==NULL)
{
printf("没有足够的内存空间");
exit(0);
}
printf("请输入这个字符串:"); /*输入元素的初始值*/
for(i=0;i<n;i++)
scanf("%c",p+i);
fflush(stdin); /* 清除缓冲 */
printf("你输入的字符串为:");
for(i=0;i<n;i++)
printf("%c",p[i]);
printf("请输入你要查找的字符:");
scanf("%c",&m);
zhaoweizhi(p,n,m); //运用找位置函数

}

请上报错那部分的代码。
0xcccccccc是C语言里没有赋初值的指针变量的值。
建议定义指针变量时立刻初始化。比如char *p = NULL之类的。


c语言编程为什么会出现Undefined symbol 错误
C语言编程中出现“Undefined symbol”错误,通常是因为编译器在链接过程中找不到某个符号的定义。在C语言编程中,一个“Undefined symbol”错误通常发生在编译和链接阶段。这个错误表明编译器在尝试构建一个可执行文件时,找不到某个函数、变量或符号的定义。换句话说,代码中可能声明...

C语言编程的时候出现“程序已停止工作”的原因有哪些?
最常见的原因:程序发生了空指针调用。\\x0d\\x0a如果你刚入门,请检查:\\x0d\\x0ascanf("%d",&i); 有没有加上“&”号,scanf必须在变量前加“&”(取地址符)。\\x0d\\x0a如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定...

C语言出现expected identifier or '('是什么意思?
在C语言编程中,遇到"expected identifier or '('"的错误消息意味着编译器期待找到一个标识符(如变量、函数名或结构体成员)或者一个左括号'(',但当前的代码位置并未提供。错误出现在代码文件q2\/frac.c的第32行。具体问题出在函数`fr_reduce`的定义上,缺少了函数首部。正确的部分应该像这样:`voi...

C语言编程时出现的那个expected怎么理解啊?
C语言编程时编译失败后提示"expected"说明代码缺乏必要内容导致语法错误。expected表示预期,期望。在C语言编译失败后的提示信息中出现时表示编译器无法通过编译,且根据其错误给出合理的建议。此处可以发现编译器提示在花括号 '{' 前缺乏某些符号,可以帮助我们修改源代码,但需要注意的是编译器的判断可能出错...

我在用C语言编程时,编译后总出现Error:spawning C1.exe的错误,看不懂...
原因可能是因为你计算机上的VC是从别的计算机上面拷来的,而非直接安装,所以设置的编译器路径需要重新设置。具体的解决方法:1、在菜单栏的【工具】(Tools)中选择【选项】(Options),在打开的对话框中选择【路径】(Directories);在右边的目录“Show directories for:”下拉表中选择【可执行文件】(...

c语言程序编程中出现error:';' expected(got "printf")是什么意思...
去错误信息中的行号和位置处加个 分号 ;想要分号,没找到,找到了printf。你用的什么c编译器,gcc和clang错误信息有区别

C语言编程时为何总是出现这个对话框,程序结果无法显示,请问怎样才能...
那当然出错了, *a表示的是指针内存块,将语句改为:printf("%p",*a);就不会出错了 如果你的原意是输出a所代表的字符串那就应该是 printf("%s",a);如果你是打算用for来逐个输出 I am a girl,那就应该是 printf("%c",a[i]);

C语言编程的时候出现“程序已停止工作”的原因有哪些?
在给指针赋值时,有没有在非指针变量前加取地址符“&”;int * p = &i; \/\/正确!int * p = i; \/\/错误!这与在sccanf里没有加上“&”号的原因大致相同。指针问题属于程序逻辑错误,很多时侯编译器只会给你一个警告。要注意警告发生的位置自己是否有把握。如果你多次编译或忽视编译警告而...

在用R语言编程中,界面上出现了“+”号,是什么意思?如何删除错误的输入...
“+”标示语句没有闭合,比如在循环中,在分支中,或者写函数等,分多行都会有加号;直接键盘按Esc键退出就可以把+号去掉,恢复正常的编辑状态。清屏用快捷键Ctrl+L 就可以清除所有编辑的语句。例如;td<-function(fx,a,b,r){ #(fx:是表达式,方程是fx=0,变量是dux;a,b,区间[a,b],r是...

在C语言编程中总是出现“declaration syntax error”是什么意思,要怎么...
declaration syntax error(声明\/定义语法错误),表示你在声明变量的时候没有按照正确语法规则声明,

湖北省19730044709: c语言运行时出现应用程序发生异常,是什么请况? -
父饲复方: 有几种情况:①变量读了不能读或写的内存空间.②内存溢出(就是写进了不能写的内存空间) ③C函数内部自己调用的异常函数.

湖北省19730044709: C语言应用程序错误. -
父饲复方: scanf("%d",a[i]);应该改为 scanf("%d",&a[i]); 因为scanf传的是地址!希望对你有所帮助!

湖北省19730044709: 我在多特网上下的C语言编程软件,在编译时总会出现“应用程序发生异常”的错误.哪位大虾帮我解决下!!! -
父饲复方: 可能是系统问题.试试注册所有的DLL文件..运行 输入cmd 回车在命令提示符下输入 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 要是不行就最好重装一下系统了..

湖北省19730044709: c语言中程序没有错误但执行时执行不了说应用程序错误 -
父饲复方: 数组500*500 250000个元素 是否太多了 缩成100*100后程序可以运行

湖北省19730044709: C语言,运行时提示:应用程序发生异常 ... 怎么回事啊... -
父饲复方: 先不看内容,就看这一句就错了.scanf("%d,%d",&num1,&num2); 两个%d之间不能有逗号. ------------------------------ 还有,你的r,没有初始化.这都是最基础的错误. --------------------------------- 还有,你的for()里面,只要r不等于0就一直循环,所以要出来r就一定等于0,然后你在把等于0的r返回,那你gongyue()方程如果能返回,也只能返回0.改成n.我估计你是抄错了.

湖北省19730044709: 安装C语言时为什么总是说应用程序出错 -
父饲复方: 首先你要明确一点,C语言是一门语言!不存在安装不安装的问题! 你现在安装的应该是C语言的编译器!可能你的编译器有问题,建议重新换其他编译器进行安装尝试!

湖北省19730044709: C语言应用程序错误.
父饲复方: scanf("%d",&n); scanf("%d",a[i]); 这么明显的错误...你既然懂得上面要用&n,SCANF要求的是一个地址. a[i]等效于 *(a+i),而明显这里需要是a+i

湖北省19730044709: 用C语言编程时 ,应用程序错误,该内存不能为read 怎么解决啊? -
父饲复方: printf("月份名称为%s.\n",**(q+x-1));改为printf("月份名称为%s.\n",*(q+x-1)); 问题解决,望大神采纳,在线等

湖北省19730044709: C语言 程序错误 -
父饲复方: #include int main(){ float weight; float value; printf("are you worth your weight in rhodium?\n"); printf("let's check it out.\n"...

湖北省19730044709: C语言编程的时候总是出错,而且无论什么程序所出的错误提示都是一样的,怎么解决? -
父饲复方: 先把源程序复制,关掉环境,重开环境,再重新新建一个文件,把代码复制在里面 新建文件的存储位置重新放在一个地方,然后把文件名重新命名一个就行了(要和以前的那个名字不一样)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网