BYTE* p = new BYTE[size] 这行代码的意思是在堆内存中开辟一块大小为 size 字节的内存空间,并将这块内存的首地址存储在指针 p 中。
使用 new 关键字开辟内存的好处是,它可以在程序运行时动态地分配内存,使我们能够根据需要分配任意大小的内存。
但是,使用 new 开辟内存也有一些注意事项。首先,使用 new 开辟内存后,我们需要使用 delete 关键字释放内存,以免造成内存泄漏。其次,如果 new 操作无法成功开辟内存,它会抛出 std::bad_alloc 异常。
因此,在使用 new 开辟内存时,应当记得使用 try-catch 语句捕获异常,或者使用 new (std::nothrow) 开辟内存,以避免因无法开辟内存而导致程序崩溃。