<分区>
我在面试中遇到了这个问题。我回答了
char *p = new char[100];
根据面试官的说法,这是错误的。
谁能告诉我正确的方法是什么,以及面试官的期望是什么?
标签 c++
<分区>
我在面试中遇到了这个问题。我回答了
char *p = new char[100];
根据面试官的说法,这是错误的。
谁能告诉我正确的方法是什么,以及面试官的期望是什么?
最佳答案
你的回答是正确的。但是,它需要手动内存管理,因此容易出错。一种更符合 C++ 风格的方式是
std::vector<char> buffer(100);
或者实际上,如果数字 100 是编译时常量:
std::array<char, 100> buffer;
// or
char buffer[100];
最后,如果我们真的对底层内存管理感兴趣,还有另一种方式:
std::allocator<char> alloc;
char* buffer = alloc.allocate(100);
关于c++ - 如何分配100字节的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540831/