C++ error: “Array must be initialized with a brace enclosed initializer”

前端 未结 3 955
天涯浪人
天涯浪人 2020-12-09 16:37

I am getting the following C++ error:

array must be initialized with a brace enclosed initializer 

From this line of C++

in         


        
相关标签:
3条回答
  • 2020-12-09 16:47

    The syntax to statically initialize an array uses curly braces, like this:

    int array[10] = { 0 };
    

    This will zero-initialize the array.

    For multi-dimensional arrays, you need nested curly braces, like this:

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

    Note that Array_size must be a compile-time constant for this to work. If Array_size is not known at compile-time, you must use dynamic initialization. (Preferably, an std::vector).

    0 讨论(0)
  • 2020-12-09 16:52

    You cannot initialize an array to '0' like that

    int cipher[Array_size][Array_size]=0;
    

    You can either initialize all the values in the array as you declare it like this:

    // When using different values
    int a[3] = {10,20,30};
    
    // When using the same value for all members
    int a[3] = {0};
    
    // When using same value for all members in a 2D array
    int a[Array_size][Array_size] = { { 0 } };
    

    Or you need to initialize the values after declaration. If you want to initialize all values to 0 for example, you could do something like:

    for (int i = 0; i < Array_size; i++ ) {
        a[i] = 0;
    }
    
    0 讨论(0)
  • 2020-12-09 16:58

    You can't initialize arrays like this:

    int cipher[Array_size][Array_size]=0;
    

    The syntax for 2D arrays is:

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

    Note the curly braces on the right hand side of the initialization statement.

    for 1D arrays:

    int tomultiply[Array_size]={0};
    
    0 讨论(0)
提交回复
热议问题