Это помечено как C ++, но вы на самом деле не делаете C ++. Почему бы просто не сделать это? Избегайте всех низкоуровневых memset и чепухи с прямым массивом.
Я, конечно, думаю, что вы должны принять некоторые из предыдущих советов и по-настоящему изучить базовый C, доступ к памяти и т. Д., Но в C ++ этого можно просто избежать.
Быстрая строка кода, которая поможет вам в пути:
typedef std::vector<std::vector<int> > Array2D;