如何分配100个字节的内存

时间:2013-10-23 11:48:51

标签: c++

我在接受采访时遇到了这个问题。我回答了

char *p = new char[100]; 
根据采访者的说法,这是错误的。

谁能告诉我正确的方法是什么,以及采访者究竟期待的是什么?

2 个答案:

答案 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可能更受欢迎。

或许他根本不想让你使用动态分配?