c語言出現空指標賦值怎麼回事請高手幫忙看下

2021-06-25 14:47:34 字數 2606 閱讀 8560

1樓:

是編譯器報的空指標賦值吧?主要原因:作者沒有搞清楚c中的全域性變數和區域性變數的問題。

1。zts[35];point1[35];point2[35];x1[35]這四個陣列在main()中有,在四個子函式中有,各是各的,互不干涉,所以main()中的這四個陣列始終沒有被賦值過,空指標指的就是這個吧。

2。應該把這四個陣列的首位址作為四個read()的引數傳過去,就可以實現:「在子函式中賦值,在main函式中使用」 的設計目的了。看程式,感覺作者就是這個目的吧。

3。 魔尊8 說的有一定道理,這四個read確實沒有起到應有的作用。加上陣列首位址做引數就可以了。或者把這四個陣列做成全域性變數也行啊。

4。作者有時間的話還是應該好好看看c語言的書啊。

2樓:匿名使用者

所謂的 空指標賦值

是不是fp=fopen("zhuangtai.txt","r");

fopen返回的是指標,把檔案的位址傳給了fp

3樓:魔尊

readtxt1();

readtxt2();

readtxt3();

readtxt4();

沒有仔細研究,不過首先我認為你這四個函式呼叫就有問題,根本就沒有返回任何值,就跟沒有呼叫一樣。

c語言空指標是怎麼回事

4樓:風若遠去何人留

空指標指的就是null

也就是0指標

指標的含義 是乙個位址。 而0位址是非法位址。對這個位址進行賦值 或者取值 就會出現空指標錯誤

在實際程式設計中,經常把指標初始化為空指標, 在訪問的時候進行判斷, 如果為空,那麼就是還沒有正確賦值的, 應該避免訪問。

5樓:匿名使用者

當你使用了乙個未初始化的指標,就會報這個錯誤。

c語言中的空指標是什麼意思?

6樓:匿名使用者

這樣一看才知道大家對空指標的概念如此渾濁哦!!

首先:void* 這不叫空指標,這叫無確切型別指標.這個指標指向一塊記憶體,卻沒有告訴程式該用何種方式來解釋這片記憶體.

所以這種型別的指標不能直接進行取內容的操作.必須先轉成別的型別的指標才可以把內容解釋出來.

還有'\0',這也不是空指標所指的內容. '\0'是表示乙個字串的結尾而已,並不是null的意思.

真正的空指標是說,這個指標沒有指向一塊有意義的記憶體,比如說:

char* k;

這裡這個k就叫空指標.我們並未讓它指向任意地點.

又或者char* k = null;

這裡這個k也叫空指標,因為它指向null 也就是0,注意是整數0,不是'\0'

乙個空指標我們也無法對它進行取內容操作.

空指標只有在真正指向了一塊有意義的記憶體後,我們才能對它取內容.也就是說要這樣

k = "hello world!";

這時k就不是空指標了.

7樓:匿名使用者

如果函式的引數可以是任意型別指標,那麼應宣告其引數為void *

典型的如記憶體操作函式memcpy和memset的函式原型分別為:

void * memcpy(void *dest, const void *src, size_t len);

void * memset ( void * buffer, int c, size_t num );

這樣,任何型別的指標都可以傳入memcpy和memset中,這也真實地體現了記憶體操作函式的意義,因為它操作的物件僅僅是一片記憶體,而不論這片記憶體是什麼型別。空指標僅僅是申明了乙個變數名,告訴編譯器有個變數存在,當然你後面肯定會用到它(事實上你不用也沒人怪你)。

注意c++中語法要求更嚴格,不允許直接對空指標賦值,而必須先進行型別轉換。

8樓:藍冰_藍水

上面的錯了。其實空指標就是指值為null的指標。而且null在c和c++的定義方式也不一樣,甚至不同的編譯器也有不同的要求。

例如:define null 0 //c的定義方式

define null (void *)0 //c++的定義方式

9樓:匿名使用者

指標沒有指向任何東西

空指標指的就的'\0'!

10樓:匿名使用者

指標沒有指向任何東西

11樓:匿名使用者

空指標指的就的「0」!

12樓:你是臥底

char* k 不能算空指標吧

c語言中,空指標申請了記憶體但未賦值,它還是空指標麼

13樓:匿名使用者

這裡的表達很不清楚。

申請記憶體時實際就是從內(的堆)中,指定沒

有使用版的一塊區域來存權儲某個資料,區域的大小也就是位元組數在申請時已經傳遞給了記憶體申請函式,返回的指標就是這個區域的首位址。返回的指標賦值給某個變數,以後就可以通過這個指標變數來使用(儲存或者是讀取)所分配的這一塊記憶體區域了。

所以就不清楚問題中說的空指標申請了記憶體所表達的意思。

如果還有問題,請繼續追問。

求c語言大神指教啊急用,怎麼回事,求C語言大神指教,急急急急

scanf d d 函式是讀取不到 n 這個字元的,可以改成這樣 e69da5e887aa62616964757a686964616f31333337383234 include int main b矩陣錄入 printf 輸入b矩陣 6x6 n for i 0 i 6 i 計算a b結果並列印 p...

電腦經常出現藍屏是怎麼回事 請具體點

一 螢幕顯示系統忙,請按任意鍵繼續 1 虛擬記憶體不足造成系統多工運算錯誤 虛擬記憶體是windows系統所特有的一種解決系統資源不足的方法,其一般要求主引導區的硬碟剩餘空間是其物理記憶體的2 3倍。而一些發燒友為了充分利用空間,將自己的硬碟塞到滿滿的,忙記了windows這個苛刻的要求。結果導致虛...

c語言程式設計時編譯沒錯但組建出錯是怎麼回事呢?該怎樣解決

嘗試在前面加一個vc的必須標頭檔案 我沒發現什麼大的錯誤,但是在scanf裡的取址符可能不太合格,是英文格式嗎?親測沒問題,是你的軟體有問題。c語言編譯正確為什麼老是執行錯誤 編寫是沒問題的。求大神解決啊 編譯正確只說明沒有語法錯誤。邏輯錯誤 演算法上的錯誤編譯程式是檢查不出來的!c語言編譯錯誤c1...