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

時間 2021-06-25 14:46:02

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樓:匿名使用者

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

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

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

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

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

char* k;

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

又或者char* k = null;

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

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

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

k = "hello world!";

這時k就不是空指標了.

5樓:匿名使用者

如果函式的引數可以是任意型別指標,那麼應宣告其引數為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++中語法要求更嚴格,不允許直接對空指標賦值,而必須先進行型別轉換。

6樓:藍冰_藍水

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

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

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

7樓:匿名使用者

指標沒有指向任何東西

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

8樓:匿名使用者

指標沒有指向任何東西

9樓:匿名使用者

空指標指的就的“0”!

10樓:你是臥底

char* k 不能算空指標吧

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

11樓:匿名使用者

這裡的表達很不清楚。

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

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

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

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

C反應蛋白高是怎麼回事

很多人發現,無論大人還是孩子的血常規或生化檢驗等檢驗時常有一個檢測專案叫c反應蛋白,但大多不知道c反應蛋白是什麼,檢測它有何意義?南京鼓樓醫院檢驗科張葵主任介紹,c反應蛋白 c neactveprotein,簡稱crp,以下均簡稱crp 早在80多年前,有兩位外國學者發現,一些感染了細菌的病人體內會...

急請專家 轉安酶高是怎麼回事

轉氨酶高不一定就是肝炎,轉氨酶高有很多原因造成的,比如喝酒還有膽,脾什麼有問題都可以造成轉氨酶公升高的。部分藥品也會引起它增高。人不注意休息疲勞了也有可能轉氨酶高,不一定是病的。體檢轉胺酶過高,怎麼回事?原因有 1。各種病毒性肝炎如B肝 C肝 2。其他肝臟疾病如自身免疫性肝病 脂肪肝 酒精肝等 3。...

初學c碰到錯誤,請大家看看是怎麼回事。謝謝

命名空間的問題,有些編譯器不能識別 你可以在一開始就使用標準庫的std命名空間 include include include using namespace std void main void 或者for語句中引用size type時使用完全的限定的標準庫名字for std vector siz...