我正在學習C++,我知道'新'關鍵字用於將內存中的地址分配給指針。而且我認爲使用'nullptr'時會初始化一個指向無效的指針。那是對的嗎?參考實例:C++:將指針設置爲nullptr並將其初始化爲新變量類型之間的區別
//using nullptr
int *x = nullptr; //this is just a pointer that points to nothing and
//will need to be initialized with an address before it
//it can be used. Correct?
//using new
int *x = new int; //this is basically giving x an address in memory. Will the
//address have some residual value stored in it or will
//it contain zero?
什麼時候可以使用其中一種?新增僅用於動態內存分配還是有其他應用程序嗎?爲什麼要初始化一個指向nullptr的指針?如果你可以聲明它並稍後初始化它?
感謝您的幫助!
第一個不會UB。 'x'只會指向一個未初始化的值。使用未初始化的值將是UB。 –
謝謝。清理措辭。 – user4581301
迂腐:閱讀'* x'是未定義的行爲。讀'x'很好(儘管原始指針值沒有多大用處)。 – ShadowRanger