我在接受采访时遇到了这个问题。我回答了
char *p = new char[100];
根据采访者的说法,这是错误的。
谁能告诉我正确的方法是什么,以及采访者究竟期待的是什么?
答案 0 :(得分:3)
你的答案是对的。但是,它需要手动内存管理,因此容易出错。更多的C ++ - y方式将是
std::vector<char> buffer(100);
或者,如果数字100是编译时常量:
std::array<char, 100> buffer;
// or
char buffer[100];
最后,如果我们真的对低级内存管理感兴趣,可以采用另一种方式:
std::allocator<char> alloc;
char* buffer = alloc.allocate(100);
答案 1 :(得分:1)
在不知道他脑子里有什么的情况下,他可能不知道char
在C ++中保证大小等于1(§5.3.3/ 1 ),并且期待类似的东西:
void* mem = malloc(100);
尽管如此,在C ++ vector
可能更受欢迎。
或许他根本不想让你使用动态分配?