โอเปอเรเตอร์ใหม่ใน 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); }