0
我想分配按以下方式動態字符串數組,我得到一個錯誤:動態字符串數組分配錯誤
struct Test
{
std::string producer[];
std::string golden[];
};
Test test1 =
{
{"producer1", "producer2"} ,
{"golden1" , "golden2"}
};
我得到的錯誤是,有太多的初始化爲std::string[0]
, 但如果我下車陣列部分它的工作原理:
struct Test
{
std::string producer;
std::string golden;
};
Test test1 =
{
"producer1" ,
"golden1"
};
在此先感謝!
'的std :: string生產者[];'你不能聲明一個數組而不必說明應包含多少個元素。 – 2012-04-02 07:24:55
@你可以,但是你不能定義它,你必須動態地去做。 – littleadv 2012-04-02 07:25:18
@littleadv是的,但非靜態成員聲明是一個定義,並且需要大小。而且你不能動態地分配任何已經聲明的東西。要動態地分配一個'string []',你必須將該對象定義爲'string *',而不是'string []'。 string []'合法的唯一位置是作爲'extern',或者作爲函數的參考參數(但這有點棘手,因爲您不能將函數傳遞給已知大小的數組) 。 – 2012-04-02 07:52:48