0

嘿伙计们,我正在尝试初始化 2D 字符数组,但遇到了麻烦。

int size = 300 * 400;
char * frame[3] = malloc(sizeof(char *)*size*3);

给米:error: invalid initializer。所以我尝试了:

int size = 300 * 400;
char frame[3][size] = malloc(sizeof(char *)*size*3);

但后来我明白了error: variable-sized object may not be initialized吗?

有什么想法可以用 3 行初始化大小为 300*400 的数组吗?

谢谢。

4

1 回答 1

2

你可以试试:

int size = 300 * 400;
const int rows_number = 3;
char* frame[ rows_number ]; // crate array with 3 elements, each of them `char*`
for( unsigned ii = 0; ii < rows_number; ++ii )
{
    // allocate `size` char`s for each "row"
    frame[ ii ] = malloc( sizeof(char) * size ); 
    // do not forget to free this memory later
}
于 2013-04-23T09:27:40.623 回答