所以当new
char
数组时,我可以初始化值:
const char* foo = new char[4]{'J', 'o', 'n', '\0'};
我想知道的是如何在initializer_list
中使用变量:
const string initializer{"jon"};
const char* foo = new char[4]{initializer.c_str()}; // This doesn't work, can I make it work?
答案 0 :(得分:2)
您可以使用变量,但是您不能使用字符串并期望编译器将其神奇地拆分。
const char* ip = initializer.c_str();
const char* foo = new char[4]{ip[0], ip[1], ip[2], ip[3]};
一旦你有一个可变长度,这根本不起作用。您只需分配然后使用string::copy
在单独的步骤中填充数组。