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還有更簡...