Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จะเริ่มต้นหน่วยความจำด้วยตัวดำเนินการใหม่ใน C ++ ได้อย่างไร


โอเปอเรเตอร์ใหม่ใน C++ ถูกกำหนดไว้สำหรับการจัดสรรหน่วยความจำและไม่ได้เตรียมข้อมูลเบื้องต้น หากคุณต้องการจัดสรรอาร์เรย์ประเภท int ด้วยโอเปอเรเตอร์ใหม่และคุณต้องการเริ่มต้นทั้งหมดให้เป็นค่าเริ่มต้น (เช่น 0 ในกรณีของ int) คุณสามารถใช้ไวยากรณ์ต่อไปนี้ -

ไวยากรณ์

new int[10]();

โปรดทราบว่าคุณเพียงแค่ต้องใช้วงเล็บว่าง เช่น คุณไม่สามารถใช้ (0) หรือนิพจน์อื่นๆ ได้ เหตุนี้จึงมีประโยชน์สำหรับการเริ่มต้นเริ่มต้นเท่านั้น

มีวิธีอื่นในการเริ่มต้นหน่วยความจำเดียวกันโดยใช้ fill_n, memset เป็นต้น ซึ่งคุณสามารถใช้เพื่อเริ่มต้นวัตถุให้เป็นค่าเริ่มต้นที่ไม่ใช่ค่าเริ่มต้นได้

ตัวอย่าง

#include<iostream>
int main() {
   int myArray[10];
   
   // Initialize to 0 using memset
   memset( myArray, 0, 10 * sizeof( int ));    
   
   // Using a loop assigns the value 1 to each element
   std::fill_n(array, n, 1);    
}