2012-08-19 110 views
0

嗨我想聲明一個全局數組,並且我想稍後設置數組中的項。 所以最後數組會有這樣的元素。聲明數組並稍後賦值

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++背景。 請諮詢

回答

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++)方法是使用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..."); 

這也將允許您添加更多的字符串,而無需重新分配數組。

我建議您閱讀一些關於標準庫的教程,因爲它會以多種方式簡化對常見任務的編程。