导航:首页 > 源码编译 > 程序编译连接都没问题

程序编译连接都没问题

发布时间:2022-07-20 11:55:21

Ⅰ C语言程序,编译连接时都没问题但运行时出错了

一眼就能看出的错误
你的

char
*name[100];
只是指针,没有分配内存,你把它做为二维数组用了
另外,字串数组不能只交换指针的
给你一个简单的参考(固定5个字串,非函数调用)
#include
<stdio.h>
#include
<string.h>
int
main()
{
int
i,j;
char
str[5][200],temp[200];
printf("Please
inout
five
strings:\n");
for(i=0;i<5;i++)

scanf("%s",str[i]);
for(i=0;i<4;i++)

for(j=0;j<4-i;j++)

if
(strcmp(str[j],str[j+1])>0)

{

strcpy(temp,str[j]);

strcpy(str[j],str[j+1]);

strcpy(str[j+1],temp);

}
for(i=0;i<5;i++)

printf("%s\n",str[i]);
return
0;
}

Ⅱ 下面这个程序编译连接都没问题,运行时出现下面的错误

逻辑问题,在main函数里声明的tkm这个对象的内存不在堆里面,无法使用delete删除,想要实现你的功能,可以把main函数做如下修改:
int
main()
{
TestKillMyself*
tkm=new
TestKillMyself
();
tkm->KillMe();
return
0;
}
注意,这里的tkm就在堆里面分配的空间,可以使用delete操作了,并且,此时在main里面不能再使用delete
tkm这样的语句了

Ⅲ C语言程序在编译链接的时候都没有问题,在调试的时候出问题了


fscanf.c
的第54行出错。
表达式:stream!=NULL
关于如何您的程序可能会导致断言失败的信息,请参阅Visual
C
+
+文档

Ⅳ C语言编程: 为什么编译和链接都没有问题 但就是运行不出结果

  1. 最后的打印格式应该用 %f,%d是打印整数用的。

  2. f2/f1是整数运算,只保留整数部分,比如3/2的结果是1,而不是1.5,改成这个样子

    s=s+(double)f2/(double)f1;

  3. f2=f,f1=f2,结果是f1和f2一样了,这个赋值顺序有问题。

Ⅳ c++程序运行时编译和连接没有错误 执行时会出现xx.exe已停止工作

大致浏览了一下,没有发现明显错误。
这种情况,就需要调试了。F5执行程序,遇到运行警告后中断,通过调用堆栈查看具体问题代码行。之后,通过变量观察、设置断点、单步执行等方式,查找具体问题。
编译链接无误,只是没有语法错误,运行时错误一般都是代码中对内存、指针、句柄的非法操作造成的。
另外,如果没有特殊指定要求,用一个char[100]代替链表指针是个不错的选择,因为在没有类管理的前提下,链表不仅增加了很多程序复杂度,而且还没有达到节省空间和方便灵活的目的。

Ⅵ 一个C语言程序,编译、链接都没问题,但一运行就出错,高手知道下~~

改好了:
#include <stdio.h>
#include <stdlib.h>
typedef struct dxs
{
int exp,coef;
struct dxs *next;
}oxs,*o_xs;
/*****输入函数*****/
void build(int i,o_xs pa)
{
int j,sum_oxs,exps=0,coefs=0;
oxs *p;
pa->coef=coefs;
pa->exp=exps;
pa->next=NULL;
p=pa;
printf("输入第%d个多项式的个数\n",i);
scanf("%d",&sum_oxs);
for(j=sum_oxs;j>0;j--)
{
printf("输入系数和指数");
scanf("%d%d",&coefs,&exps);
p->coef=coefs;
p->exp=exps;
p->next=pa;
pa=p;
p=(oxs*)malloc(sizeof(oxs));
}
free(p);
}
/*****输出函数*****/
void show(o_xs pa)
{
while(pa!=NULL)
{
printf("%d\t%d\t",pa->coef,pa->exp);
pa=pa->next;
}
printf("\n");
}
/*****排序函数(升序)*****/
void list_oxs(o_xs pa)
{
oxs tt,tt0;
oxs *p=pa,*q=pa;
tt.coef=p->coef;
tt.exp=p->exp;
while(p!=NULL)
{
while(q!=NULL)
{
if(q->exp<tt.exp)
{
tt0.exp=tt.exp;tt0.coef=tt.coef;
tt.exp=q->exp;tt.coef=q->coef;
q->exp=tt0.exp;q->coef=tt0.coef;
}
q=q->next;
}
tt0.exp=tt.exp;tt0.coef=tt.coef;
tt.exp=p->exp;tt.coef=p->coef;
p->exp=tt0.exp;p->coef=tt0.coef;
p=p->next;
q=p;
}
}
/*****多项式相加函数*****/
void add(o_xs pa,o_xs pb)
{
int sum_coef;
oxs *p,*q,*u,*pre;
pre=pa;
u=pb;
p=pa->next;
q=pb->next;
while((p!=NULL)&&(q!=NULL))
{
oxs *p,*q,*u,*pre;
if(p->exp>q->exp)
{
u=q;
pre->next=u;
u->next=p;
pre=u;
q=q->next;
}
else if(p->exp<q->exp)
{
pre=p;
p=p->next;
}
else
{
sum_coef=p->coef+q->coef;
if(sum_coef==0)
{
u=p;
p=p->next;
free(u);
u=q;
q=q->next;
free(u);
}
else
{
p->coef=sum_coef;
pre=p;
p=p->next;
u=q;
q=q->next;
free(u);
}
}
if(q!=NULL)
{
pre->next=q;
}
}
}
/*****main函数*****/
void main()
{
oxs a,b;
build(1,&a);
list_oxs(&a);
show(&a);
build(2,&b);
list_oxs(&b);
show(&a);
add(&a,&b);
show(&a);
}

Ⅶ C语言程序编译链接没错误但结果不对…

scanf("%d,%d",&a,&b);你把这句分开写就好了,scanf("%d",&a);scanf("%d",&b);因为你在输入a以后,会按下回车,如果你写在一行就会把这个回车符赋给了b,所以b就是错误的!

Ⅷ C++程序编译连接都没有问题,但是运行时却什么东西都出不来,也没有报错,怎么回事啊

应该是逻辑错误吧。逻辑错误不同于语法错误,编译器是不会告诉你的。
记得我做数据结构课设的时候就是指针指向不对,结果虽然能运行,但是就是不出结果。。好好检查一下吧。书上的例子最好看懂了以后自己默敲在电脑里,而不要做typewriter,明白么?望楼主收获更多。

Ⅸ c语言中编译和链接没问题,执行出错是什么原因

说明代码中的逻辑有问题
可能出现了越界一类的
或者代码设计的本身就有问题。
这个要看具体代码才清楚的。

阅读全文

与程序编译连接都没问题相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:569
python员工信息登记表 浏览:369
高中美术pdf 浏览:153
java实现排列 浏览:505
javavector的用法 浏览:974
osi实现加密的三层 浏览:225
大众宝来原厂中控如何安装app 浏览:906
linux内核根文件系统 浏览:235
3d的命令面板不见了 浏览:520
武汉理工大学服务器ip地址 浏览:141
亚马逊云服务器登录 浏览:517
安卓手机如何进行文件处理 浏览:65
mysql执行系统命令 浏览:923
php支持curlhttps 浏览:137
新预算法责任 浏览:437
服务器如何处理5万人同时在线 浏览:244
哈夫曼编码数据压缩 浏览:419
锁定服务器是什么意思 浏览:380
场景检测算法 浏览:613
解压手机软件触屏 浏览:343