Здравствуйте, хотелось бы уточнить кое-что про операцию new. Допустим пользователь вводит строку, и чтобы не разбрасываться памятью надо знать точное количество символов. Но точное количество мы узнать не можем, мало ли какой пользователь попадётся. Значит можно сделать так:
#include <iostream>
#include <cstring>
using namespace std;
const int MAX = 40;
int main ( )
{
char str [ MAX ];
cin >> str;
int len = strlen ( str );
char *str2 = new char [ len + 1 ];
strcpy ( str2, str );
return 0; //это всё при условии что строка не больше 39 символов
}
Допустим строка состоит из десяти символом, получается отсальные 30 ( из 40 отведённых ), пропадают даром, но тут на помощь приходит операция new, и, так сказать, бронирует 10 "ячеек". А теперь вопрос:
На самом ли деле он бронирует эти десять "ячеек"?
Тоесть остальные 30 ( памяти ) можно использовать совершенно для других целей?