您好我想声明一个全局数组,并且我想稍后在数组中设置项目。 所以最后数组会有这样的元素。
const char *payload_text[]= new const char(){"To: " TO "\n","From: " FROM "\n","Cc: " CC
"\n","Subject: Test2 \n", "\n", "Testing using methods ver1.\n",NULL };
抱歉,我对此完全陌生,并且我获得了c ++的作业,而不是c ++背景。 请咨询
答案 0 :(得分:2)
在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 ++)的方法是使用像std::vector
这样的STL容器以及动态管理字符串的类: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...");
这也允许您添加更多字符串而无需重新分配数组。
我建议您阅读一些有关标准库的教程,因为它可以通过多种方式简化编程常见任务。
答案 1 :(得分:1)
数组和全局变量是邪恶的http://www.parashift.com/c++-faq-lite/defn-evil.html我们是在谈论c ++,而不是c
在你的情况下你最好使用字符串向量,例如
static std::vector<std::string> payload{"To: ", TO, "\n","From: ", FROM}