У меня есть структура, определенная в файле с именем 'xxx.h':2D-массив структур с новым ключевым словом в C++!
struct struct_name
{
declarations;
};
Я включил этот заголовок - 'xxx.h' - в другом файле C++, yyy.cpp
И тогда я попробуйте создать 2D-массив указанной структуры с использованием нового ключевого слова следующим образом (я узнал, как создать 2D-массив структур по этой ссылке: Declaring a 2D array of type struct in c++).
struct struct_name * some_name;
some_name = new struct struct_name[x][y];
Когда я компилирую, я получаю следующее сообщение об ошибке: error: ‘y’ cannot appear in a constant-expression
. Эта ошибка, в частности, указывает на второе измерение массива.
Также Когда я попытался инициализировать это 2D массив структур с некоторого значения, как:
some_name[i][j].var_name = value;
я получаю следующее сообщение об ошибке:
error: no match for ‘operator[]’ in ‘*(some_name + ((sizetype)(((unsigned int)i) * 12u)))[j]’
Пожалуйста, сообщите мне, как это исправить.
Спасибо.
Спасибо @WhozCraig. Я попробую это и дам вам знать. – arun
Большое спасибо WhozCraig. Ваш альтернативный подход работал :-) Я использовал альтернативный подход, потому что WIDTH вводится только во время выполнения. – arun
@ Casey спасибо за исправление. очень ценю коррекцию. Был на моем пути! ходить по магазинам и немного спешить. еще раз спасибо. – WhozCraig