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...