C中,intpnewint是可有可無的嗎

2021-05-31 02:40:40 字數 1481 閱讀 3555

1樓:匿名使用者

int *p = new int;

是在堆中給變數分配了一個空間,當用完後需要手動釋放。可以使用delete()函式

如果沒有int *p = new int; 是不能給p進行賦值的 因為沒有分配空間。

你也可以使用malloc分配空間,但最後釋放的時候要使用free()函式

2樓:匿名使用者

如果是int * p;

*p = 0;

那麼結果是不可預知的,可能正常執行,也可能立即崩潰,或者在任何無法預知的時候出現任何無法預知的問題。

如果是int t;

int * p=new int;

p = &t;

將會造成記憶體洩漏,如果多次出現這樣的情況,將會導致程式可用的記憶體越來越少。

3樓:千江月

不是可有可無的,得看你如何使用

舉例:1、 int *p = new int;

*p = 5;

此時p沒有空間必須申請

2、int a = 5;

int *p;

p = &a; //p不用重新申請空間,它指向a的空間。。

4樓:匿名使用者

看你對p賦值是什麼意思了。

如果說讓p指向另外一個int *指標可以。

但是如果說你要 *p =1或者什麼就不行了。

必須得new int分配空間

c++中,int **p=new int*[5]為什麼不正確?

5樓:匿名使用者

這樣子是沒有問題的啊,你定義了一個二重指標,指向了一個具有5個int*元素的陣列。

6樓:

除了沒有分號外,沒看出**不正確

7樓:匿名使用者

是不是你最後沒有打分號。。。

c++int *p 和int *p = new int 有什麼區別? 搞不懂int *p;和new出來的指標在記憶體中的存放位置

8樓:

int *p; // 只是定義一個指標變數,但它還沒有在堆記憶體分配空間。

*p=123; // 錯誤,因為還沒有記憶體空間可以儲存123這個值。

int * p2 = new int; // 為指標變數p2分配了一個記憶體空間

*p2=123; // 正確,因為此時p2有空間可以儲存123這個值。

c++中, int *p = new int[10]; int *p1 = new int[10](); 有什麼區別?

9樓:匿名使用者

int *p = new int[10]; 申請10個整數的空間,但不進行初始化, 相當於malloc

int *p = new int[10]; 申請10個整數的空間,並對其進行初始化

C中throw new Exception是什麼意思,這麼使用

c 中throw語句用於在程式執行過程中引發異常,被引發的異常是一個物件。new exception表示建立專了一個新屬的異常物件。通常用try.catch語句來捕獲物件。下面的示例表示如何顯示引發異常。public static void main throw new exception 丟擲新的...

C中void有什麼用,c 中的void 是起什麼作用

首先你要來了解方法 函式 的自定義 方法可以分為 有 無返回值 有 無引數 靜態 非靜態 公共 私有 受保護等 比如 public int 函式名 型別 引數1,型別 引數2 1 這裡public修飾符規定了這個方法是公共的即任何範圍都可以訪問 只要建立了這個類的物件就可以 2 int 就是返回值 ...

c 中 的意思,C 中 是什麼意思

賦值運算子 bai中有 運算du符,其作用是在左邊zhi的變數上加上右邊的值dao 例如 i 1等同 專於i i 1 從彙編的角度講,屬i i 1 要比i 1 消耗更多的時間和資源。現在的編譯器考慮到了初學者容易犯這類錯誤,會自動將i i 1 這樣的語句優化成類似i 1 的形式。另外,自增1還有更簡...