導航:首頁 > 源碼編譯 > c段錯誤編譯器輸出空

c段錯誤編譯器輸出空

發布時間:2022-05-29 02:54:27

① c代碼 報錯「段錯誤」

程序沒有錯誤。這是編譯器的預設錯誤,我忘記那裡了,

for(int
id;
)
//一些編譯器把他當作全局變數
,一些當作for循環的變數,這個你可以更改編譯設置,就好了。我以前在vs2003遇到過,不過你還是定義全局變數,不要在for循環定義變數,這樣不管編譯器怎麼預設,自己都不會錯

② C語言中的NULL

在頭文件 中 定義的一個常量 NULL=0;

用於指將指針 懸空(不指向任何位置)樓上的指向0內存不對的.
int *p=NULL;
NULL是個好東西,給一出生的指針一個安分的家

NULL不是被定義為0,就是被定義為(void *)0,這兩種值幾乎是相同的。當程序中需要一個指針時(盡管編譯程序並不是總能指示什麼時候需要一個指針),一個純粹的零或者一個void指針都能自動被轉換成所需的任何類型的指針。

NULL總是等於0嗎?
對這個問題的回答與「等於」所指的意思有關。如果是指「與。比較的結果為相等」,例如:
if(/* ... */)
{
p=NULL;
}
else
{
p=/* something else */;
}
/* ... */
if(p==0)
那麼NULL確實總是等於0,這也就是空指針定義的本質所在。

如果是指「其存儲方式和整型值。相同」,那麼答案是「不」。NULL並不必須被存為一個整型值0,盡管這是NULL最常見的存儲方式。在有些計算機中,NULL會被存成另外一些形式。

如果想知道NULL是否被存為一個整型值0,可以(並且只能)通過調試程序來查看空指針的值,或者通過程序直接將空指針的值列印出來(如果將一個空指針強制轉換成整類型,那麼=所看到的很可能就是一個非零值)。

linux下c語言編程出現段錯誤

簡單看了一下你的程序
首先,你沒有給出完整的程序,這個讓大夥看起來確實不方便,因為沒有main函數,可能踩內存的地方並不是這個函數本身,是main函數
其次說你的這個函數,貌似確實有點問題,但是由於沒有完整的程序,我只說出我的理解,如果有錯,直接忽視就好
sprintf(flag_height,"%03d",i+1);
sprintf(flag_width,"%03d",j+1);
我覺得問題出在這里,你查下
sprintf
的用法,第一個參數應該是一個字元串的首地址,你寫的確實沒有錯,參數給入的是一個地址flag_height,但是縱觀你的程序,你並沒有給這個指針賦值,程序運行到這里,估計在默認創建指針的時候應該賦值為NULL(貌似根據編譯器不同而有不同),那個定址後報出段錯誤,也是意料之中了
由於沒有你完整的代碼,不知道你要做什麼,修改意見不好提
給出個人意見,僅供參考
如果要列印flag_height中的值,首先應該給flag_height指針分配一片內存,使用malloc函數,其次在向內從中寫入值,然後調用sprintf,就應該沒有問題了

④ C語言編譯後無結果輸出

樓主。 達到效果了啊。。
完全達到了 啊。。
樓主你題目裡面字母和數字之間是兩個空格!!!!!!!!!
要不,你自己算,如論如何數字的道理跟字母一樣!!!
奇數在偶數位置上!!!

#include <stdio.h>
#include <string.h>

void fun(char *s,char t[])
{
int k,n=0;
for(k=0; k<(int )strlen(s); k++) //這里建議強制轉換,就沒有警告了。
if(k%2==1 && s[k]%2==1)
t[n++]=s[k];
t[n]='\0';
}

void main()
{
char s[100],t[100];
printf("Please enter string S:");
gets(s);//這里函數不能是scanf
/*因為scanf一旦遇到空格就不會繼續讀字元。也就是說你的S裡面其實只放了
ABCDEGFG 巧合的是,你發現沒有偶數位上的都是奇數,也就是什麼也不輸出了
後面又不在S裡面。不信你該全部是AAAAAAAAAAAAAAAAAAAAAAAAAA 123456試試*/
fun(s,t);
printf(" The result is: %s\n",t);
}

⑤ C語言的字元串中如果有空格,在輸出時編譯器是怎麼判斷這個空格不是字元串結尾的'\0'

字元串里的空格是 ' '
而不是'\0',
'\0'是字元串結束標識符,代表整個字元串的結束
而空格是屬於字元串里的一部分

⑥ c 語言 :段錯誤

p沒有指向任何地方,默認的指針都是NULL
然後你就直接*p,這個時候不知道該引用哪塊內存了,因為p是null
只能 int* p =(int*) malloc(sizeof(int));
這樣把一塊內存的地址給p,*p的時候就引用那塊內存了

⑦ linux 下運行c出現段錯誤!!

我猜想錯誤的原因是:
char * c = "hello";//該c是一個指針,指向「hello」
reverse(c);
函數
void reverse(char * a)
{
int len = strlen(a);//該strlen函數是計算a的長度,以'\n'為結束,所以len可能不是5;

⑧ C語言大神幫看,為什麼輸入1之後輸出為空白

程序有一點小BUG,第五行單引號應該變成雙引號。
除此之外是沒問題的,輸入1後會輸出數字1,然後不換行,之後輸出sum的值0,所以你看到的輸出應該是10。
但我猜測,你想要的效果可能不是這樣,或許你可以在第五行輸出中加上\n,在第六行else後和倒數第二行末尾分別添上左右大括弧,看看這是不是你想要的。
另外,之前那個回答不用太在意,他沒看題目,批量復制騙採納的。

⑨ C語言中怎樣輸出空格 用printf("\ ")行不行

直接輸入空格就可以了,或者輸入「\t」相當於輸入一個「Tab"

⑩ c語言 輸出段錯誤 為甚嘛呢

strcat()函數是從數組source[]數組的第一個『\0』開始將後一個參數中的字元復制上去的,你定義時造成source[]數組只能容納三個字元,再將其它字元串復制時,空間不夠用,就造成了段錯誤,段錯誤是對非法地址的操作造成的

#include <string.h>
#include <stdio.h>
int main(int argc,char **argv)
{
char *from_web_url="henhao";
char *p="good";
char source[100]="{{";
strcat(source,from_web_url);
strcat(source,"}}");
strcat(source,p);
printf("%s\n", source);
return 0;
}

閱讀全文

與c段錯誤編譯器輸出空相關的資料

熱點內容
javaoa開發 瀏覽:875
單片機的用途和使用方法 瀏覽:944
程序員在新公司上班 瀏覽:430
發信如何設置伺服器 瀏覽:77
源代碼查詢加密數字 瀏覽:605
附帶編譯 瀏覽:108
海康螢石雲app怎麼回放 瀏覽:404
寫一個編譯器怎麼寫 瀏覽:285
單片機蜂鳴器發聲原理 瀏覽:137
程序員那麼可愛陸離跳水是哪集 瀏覽:17
如何製作cdn伺服器 瀏覽:111
寫java加密程序 瀏覽:659
菜鳥數據分析pdf 瀏覽:291
單片機做實用東西 瀏覽:651
我的世界最強斗羅伺服器怎麼覺醒武魂 瀏覽:931
密友圈app怎麼切換用戶登錄 瀏覽:217
我把程序員當愛豆追 瀏覽:978
android判斷電話接通 瀏覽:646
大孔文件夾 瀏覽:785
反詐騙app在哪裡下載 瀏覽:527