c語言指標初始化,c語言指標初始化

2023-01-25 00:05:50 字數 3452 閱讀 7585

1樓:匿名使用者

int array[4][5][6];

一級指標,指標向一個陣列,該陣列為int [4][5][6]

int (**a)[4][5][6] = &pa;//二級指標,指向上一行的一級指標

對於動態分配的結構,不可能用陣列這種形式來儲存的。因為陣列的下標必須在編譯時刻明確為常量。樓主用的c++,可以考慮用stl的vector。

另外,我覺得本身用維度這麼大的陣列就不是很合適,應該換別的方式。

2樓:廖山穆嘉年

第一個,指標變數是區域性變數,且沒有正確賦值,是一個野指標

第二個,指標變數是形參,在函式呼叫中就吧實參值傳給形參了,所以實際上指標p是有被正確賦值的(當然此處假設是呼叫正確的情況下),不是野指標

3樓:匿名使用者

指標申明的時候最好初始化。。初始化以後的指標在一些操作下野會變成野指標,比如:free釋放記憶體以後。。指向被釋放的記憶體的指標也是野指標。。

我理解的野指標就是不可控的,不確定指向的指標都是野指標。

4樓:匿名使用者

注意了,a只是一個雙重指標,不是陣列。還有new這個東西是c++中的。c中用malloc分配記憶體,再初始化。

c語言指標使用前必須初始化??

5樓:匿名使用者

指標申明的時候最好初始化。。初始化以後的指標在一些操作下野會變成野指標,比如:free釋放記憶體以後。。指向被釋放的記憶體的指標也是野指標。。

我理解的野指標就是不可控的,不確定指向的指標都是野指標。

6樓:匿名使用者

指向null就行了。沒有初始化的話,系統會隨機給它分配內容,即隨機指向一塊記憶體,在使用不當的情況下很可能造成一系列問題

7樓:中國洪康

=null初始化 野指標指的是被new出來的指標, 但是沒有delete掉,停留在記憶體裡,有可能印製記憶體崩潰的

8樓:匿名使用者

指向某一變數的地址

比如int b=12,*a=&b;

9樓:匿名使用者

最好初始化

一般都是

p = null;

c語言編寫程式:定義一個變數,一個指標,建立該變數的引用。對變數進行初始化,並將指標指向該變數,

10樓:匿名使用者

#include

int main()

11樓:匿名使用者

#includeusing namespace std; int main(){ int a; int* ptr; a = 1; cout<

c語言中指標如何初始化為null?

12樓:

ptr=null,因為是指標的值是空,而不是指標指向地址儲存的值為空。

13樓:掌心紋

ptr = null;用於將指標指向空

而*ptr是指它指向的地址裡的內容。

關於c語言指標宣告與初始化問題

14樓:樸皖容

c語言中,宣告一個指標陣列,char *s[1024 ] ,但並沒有對它初始化,那它裡面的資料(指標)是不確定的!如果是全域性變數,則裡面的指標全是空指標如果是區域性變數,則裡面的資料是不確定值,就象普通陣列和變數一樣,是不確定的數值。

c語言野指標就是未初始化的指標麼

15樓:_何聰輝

未初始化的指標可以稱為野指標(wild pointer),但是野指標並不僅僅是未初始化的指標. 一般來說,野指標(dangling pointer, wild pointer)指向的是記憶體中無效的物件, 這樣說可能很抽象, 比如以下幾個例子.

1. 如果有一段**如下

char *dp = null;

/* c falls out of scope */

當程式走出大括號作用域後, 變數c的記憶體(在棧中)被系統**,但是dp仍讓指向那塊記憶體,這塊記憶體今後很有可能被系統用作其他用途,此時如果*dp,dp指向的內容將不會是你期待的內容,此處,dp可以稱為野指標.

2. 第二種情況是使用者自己分配記憶體,然後自己釋放記憶體,釋放記憶體後仍然引用指標指向的內容, 比如

#include

void func()

在執行完free(dp)後,dp是一個野指標,因為他指向的記憶體已經被釋放掉了,系統可能會把這段記憶體用於其他地方.這個時候,常用的一種做法是把這個指標設為null, 設為null的指標可以由程式設計師使用if (dp == null)語句堅持出來, 但是野指標無法監測.

3. 另外一種情況是指標指向函式中分配的棧記憶體,函式返回後,記憶體被**,但是指標指向的地址沒有改變,因此這個指標也是野指標.比如

int *func(void)

從以上三點可以總結出, 野指標其實就是就像一段無效的記憶體(被系統**), 但是這個指標的值並不是null, 因此如果沒有立刻把這個指標賦其他有效值,或者null值, 以後再次引用野指標就會出現segmentation faults這樣的錯誤

16樓:

野指標是指你分配記憶體後並且也釋放了的,但是沒有將指標置為null的指標俗稱野指標。

17樓:滿爽

野指標是指指向垃圾記憶體的指標,未初始化只是其中一種而已,還有就是malloc分配記憶體的指標未釋放,越過了變數的作用範圍。大概就這三種。

18樓:apple林

可以你new的指標,但是沒有free

c語言 指標變數的初始化問題

19樓:掛乒坎

變數的初始化就是在定義變數的時候,直接對變數進行賦值操作。初始化的方式一般有如下兩種:1、直接對變數進行賦予常量數值進行初始化;2、通過同型別變數進行初始化。

舉例說明如下:// 以下屬於第1種初始化方式int a1=5; // 整型變數的初始化int b1=; // 整型陣列的初始化char str1="abcd"; // 字元陣列的初始化// 以下屬於第2種初始化方式int a2 = a1; // 整型變數的初始化int b2[4] = b1; // 整型陣列的初始化char str2[4] = str1;// 字元陣列的初始化char *p = str1; // 字元指標的初始化

20樓:冒翠倪昆緯

如果是pa=&b就不會影響到a的值了,*pa意味著按pa的值取地址,然後對該地址進行操作,而去掉*以後才是對pa指標本身進行操作,你可以把*pa當做a的別名來看。

c語言指標初始化的問題

如果你是需要賦字串的,不需要給它分配空間,但是如果你要給指標結構體賦某個值,那是需要給指標指定記憶體空間的,所以你上面的程式只要這樣就好了 main s的話,就是後面的str1之類的東西是要一個地址 main str2 bushishabi 去掉 printf s n s n str1,str2 要...

c語言memset初始化結構體問題

1.memset函式的原型void memset void s,char ch,size t n 函式的第一個形式引數是指標型別,所以實參因為一個地址,即 a注意 a與a是不同的.a是結構體變數名,而 a是變數a的地址.2.另外memset 是一個庫函式函式,需要加標頭檔案 include 3.正如...

c語言定義整型陣列並未初始化資料

首先要清楚什麼是初始化 在宣告變數的同時賦值就是初始化。而在其後的賦值語句就不是初始化。一般來說,如果你不給變數一個確定的值,就直接引用它,則系統不能保證執行的唯一性,而這是我們程式所不允許的。所以我們一般用初始化的方法來確定其值。如char str 100 引用memset str,sizeof ...