C ++错误:“必须使用大括号括起来的初始化程序初始化数组”

问题描述 投票:21回答:4

我收到以下C ++错误:

array must be initialized with a brace enclosed initializer 

从C ++的这一行

int cipher[Array_size][Array_size];

这里是什么问题?错误是什么意思?下面是完整的代码:

string decryption(string todecrypt)
{
    int cipher[Array_size][Array_size] = 0;
    string ciphercode = todecrypt.substr(0,3);
    todecrypt.erase(0,3);
    decodecipher(ciphercode,cipher);
    string decrypted = "";
    while(todecrypt.length()>0)
    {
        string unit_decrypt = todecrypt.substr(0,Array_size);
        todecrypt.erase(0,Array_size);
        int tomultiply[Array_size]=0;
        for(int i = 0; i < Array_size; i++)
        {
            tomultiply[i] = int(unit_encrypt.substr(0,1));
            unit_encrypt.erase(0,1);
        }
        for(int i = 0; i < Array_size; i++)
        {
            int resultchar = 0;
            for(int j = 0; j<Array_size; j++)
            {
                resultchar += tomultiply[j]*cipher[i][j]; 
            }
            decrypted += char((resultchar%229)-26);
        }
    }
    return decrypted;
}
c++ arrays compiler-errors
4个回答
23
投票
是什么?

静态初始化数组的语法使用大括号,如下所示:

int array[10] = { 0 };

这将对数组进行零初始化。

对于多维数组,您需要嵌套的花括号,如下所示:

int cipher[Array_size][Array_size]= { { 0 } };

请注意,Array_size必须是一个编译时常量,它才能起作用。如果在编译时未知Array_size,则必须使用动态初始化。 (最好是std::vector。)>


4
投票

您不能像这样将数组初始化为'0'


0
投票

您不能像这样初始化数组:


0
投票

jutsjutsjutsjutsjutsjutsjutsjutsjutsjutsjutsjuts

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.