linux下c語言程式設計出現段錯誤

2021-08-01 07:46:45 字數 572 閱讀 9131

1樓:

簡單看了一下你的程式

首先,你沒有給出完整的程式,這個讓大夥看起來確實不方便,因為沒有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語言程式設計數排序我的程式錯在哪,c語言程式設計 三個數排序 我的程式錯在哪

給你一個多數值比較的程式,冒泡法的。include int main int i,j,t,n,a 100 printf 輸入比較數個數 n scanf d n printf 輸入 d個數 n n for i 0 iscanf d a i printf 從小到大的順序為 n for j 0 j n 1...

C語言編寫閏年高手看下提點下,C語言程式設計判斷是否是閏年

樓主這個疑惑其實是對賦值意義沒有完全搞清楚。基礎不紮實哦 if leap 第七行 如果括號內是 leap 1,就是賦值語句了,leap恆為真。無論第五行的if條件為什麼,都要執行第八行語句。因而,不能夠換。換了之後,if判斷語句就沒有判斷的意義了,恆為真啊 而原程式,第五行的if語句,就是判斷條件,...

無作業系統下C語言的程式設計,用C語言編寫作業系統

這個要看你硬體連線方式了,基本上就是直接用cpu的io指令 讀不了吧,得有軟體做輔助才行。不曉得彙編可不可以。或許要機器語言吧。直接用匯編,使用cpu提供的io指令 用c語言編寫作業系統 要有彙編的一定 bai基礎,在看 他會教du你你不會的你要學zhi的匯dao編部分,但是他說的版不細,你需要自己...