導航:首頁 > 源碼編譯 > 程序編譯連接都沒問題

程序編譯連接都沒問題

發布時間: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語言中編譯和鏈接沒問題,執行出錯是什麼原因

說明代碼中的邏輯有問題
可能出現了越界一類的
或者代碼設計的本身就有問題。
這個要看具體代碼才清楚的。

閱讀全文

與程序編譯連接都沒問題相關的資料

熱點內容
linux內核根文件系統 瀏覽:233
3d的命令面板不見了 瀏覽:518
武漢理工大學伺服器ip地址 瀏覽:139
亞馬遜雲伺服器登錄 瀏覽:515
安卓手機如何進行文件處理 瀏覽:62
mysql執行系統命令 瀏覽:921
php支持curlhttps 瀏覽:134
新預演算法責任 瀏覽:435
伺服器如何處理5萬人同時在線 瀏覽:242
哈夫曼編碼數據壓縮 瀏覽:415
鎖定伺服器是什麼意思 瀏覽:376
場景檢測演算法 瀏覽:608
解壓手機軟體觸屏 瀏覽:339
方舟pv怎麼轉伺服器 瀏覽:100
數據挖掘中誤差值演算法函數 瀏覽:119
php開發套件 瀏覽:191
伺服器的spi板是什麼 瀏覽:897
解壓縮全能王中文密碼是什麼 瀏覽:81
javaftp伺服器上傳文件 瀏覽:104
演算法設計中文版pdf 瀏覽:83