當多個指標變數指向同一記憶體地址,如何管理這些指標

2021-04-19 08:30:23 字數 1713 閱讀 9040

1樓:匿名使用者

使用計數類來管理,當計數大於1時絕不撤銷指標,只有當計數為1時才撤銷指標,然後刪除指標指向的記憶體。

這是共享和指標管理技術。<>多有論述。

2樓:匿名使用者

當地址被釋放以後,其他指標都要置為null,否則很容易出現野指標異常的

3樓:若彤小站

用聯合來管理這些指標變數,即union

c語言中同一地址被多個指標變數指向著,有什麼不妥嗎?我能想到的就是可能操作有點亂,會對記憶體有威脅嗎

4樓:匿名使用者

少釋放一次,導致記憶體洩漏

多釋放一次,系統崩潰

為了不出現這樣的問題,還是別指向同一個地址

5樓:與子如初見

不會,是指標指向記憶體,而不是記憶體屬於指標。你使用指標的時候知道指標所指就行了,沒有問題的。只要不是你操作上的問題,指標本身是不會出問題的。

6樓:匿名使用者

一般別同一地址被多個指標變數指向著,如果這樣一般是儲存一下指標

c語言中,當一個指標指向一個變數後,指標的值改變了,變數的會變嗎?如果變數的改了,指標的也會改嗎?

7樓:端武者

指標的值改了復 ==> 你是說指標裡面

制儲存的地址改了還是指標指向的資料的值改了.前者會讓指標指向另一個地址,後者會改變對應記憶體地址的值.

變數的改了 ==> 指標本來就是指向一個記憶體地址的.你指的"指標的也會改"是說指標指向的值也會改, 確實是這樣.

對指標進行解引用之後的操作相當於對變數本身進行操作,獲取值時亦然.

怎麼獲得一個指標變數所指向的地址的值

8樓:匿名使用者

使用指標間接運算子可獲取位於指標所指向的位置的變數。 表示式採用下面的形式,其中,p是指標型別:

*p;不能對除指標型別以外的任何型別的表示式使用一元間接定址運算子。 此外,不能將它應用於 void 指標。

當向 null 指標應用間接定址運算子時,結果將取決於具體的實現。

9樓:

假設0x80000地址的值為5,int *p ,p這個變數在記憶體中的地址為0x8abcd,

那麼

p指向的地址為0x80000,就是說p = 0x80000;

如果要求0x80000地址的值,就是用*p;

&p是求int型指標變數p本身的地址,這是一個二級指標,即 int **a = &p;

10樓:匿名使用者

說白了p本身也是個變數,儲存的時地址而已,正常用為*p,取得是資料,如果直接用p那就是地址了。可以試試。

11樓:匿名使用者

比如你要輸出地址的話printf("%p\n",p);

如果你要輸出地址指向的值的話printf("%d\n",*p);

12樓:匿名使用者

printf("%d", p);就能看到了

13樓:

&p就是地址

*p是具體的int數值

如:int q;

q=&p;//q=0x80000

C語言指標變數比較,怎樣運用c語言指標變數比較兩個字串是否相等?請修改

首先要 分清,是在 宣告中 還是在語句中。宣告中,例如 int a 1,b 2 int p,q 宣告 p 和 q 是指標,用於指向 int 型資料。p a q b 語句,p 和 q 是指標 指向的資料 的地址,p 指向 a,q 指向 b.if p q printf 語句,p 和 q 是 地址 地址大...

求助多個因變數和多個自變數之間如何用spss做相關性分析,通過問卷調

用spss可以做一個相關矩陣 還可以做多變數與多變數的典型相關,不過這個分析好像已經過時了還可以做迴歸分析,不過一次只能做一個自變數最好還是用其他軟體做結構模型了,用結構方程來做,spss應該做不了的,可以用amos,lisrel,mplus等等 自變數相關係數過高 大於0.9或者0.8 的話的確應...

MATLAB定義多個符號變數

用一個迴圈即可實現多變數定義 fori 1 100 syms x num2str i end 如果我們 不會太多的mantlab功能,那我們 就運用我們所知道版的去完成那些我權們未知的 功能,這樣也可不必被軟體約束和限制。我想問下 你學習了抄幾天matlab 或者是否壓 襲根沒有學習matlabma...