在 C++ 中,使用与您提供的代码类似的代码是不可能实现您的目标的。
编辑:如果您想动态添加项目,至少不会。仅当在声明向量时初始化向量时,发布在其他答案中的代码 galadog 才有效。
但是,在运行时创建和/或填充数组有多种可能性。
最接近您的示例的方法是
char **payload_text;
// ...
payload_text = new char*[number_of_entries];
payload_text[0] = "To: ..."
payload_text[1] = "From: ..."
// ... and so on.
但是,您分配的内存new
不是由 C++ 管理的(我假设您来自 C# 和/或 Java)。您必须手动释放它以避免内存泄漏。
更好的(更多 C++)方法是使用 STL 容器,例如std::vector
动态管理字符串的类:std::string
.
// Beginning of your source code
#include <vector>
#include <string>
//...
std::vector<std::string> payload_text;
//...
payload_text.push_back("For...");
payload_text.push_back("To...");
这也将允许您在不重新分配数组的情况下添加更多字符串。
我建议您阅读一些关于标准库的教程,因为它可以在许多方面简化常见任务的编程。