Новый вопрос здесь ... почему следующий код работает только с массивом 1D, но не с 2D-массивом? Разве это не имеет значения, указывает ли b на начало 1D-массива или 2D-массив, если это указатель char * (как есть)? Я думал, что общая нотация [bound1] [bound2] была эквивалентной [bound1 * bound2], даже над операцией присваивания. Помогите?Невозможно преобразовать char (*) [50] в char * при назначении
main() //this works fine
{
char *b;
b = new char[50];
return 0;
}
.
main() //but this raises the error "Cannot convert char(*)[50] to char* in assignment"
{
char *b;
b = new char[50][50];
return 0;
}
Иногда это помогает, если вы будете искать SO - http://stackoverflow.com/questions/936687/how-do-i-declare-a-2d-array-in-c-using-new – SChepurin