123 nie zajmuje 3 bitów, 123 zajmuje co najmniej 7 bitów.
Tablic nie tworzy się w oparciu o bity(ew. bajty) tylko o ilość elementów. Więc jeśli użytkownik Ci poda wielkość = 123 tworzysz tablice o 123 elementach(new TYP[123]), czyli tak:
Operator sizeof zwraca liczbę int równą ilości bajtów zajmowanych przez badany obiekt. Przy rezerwacji tablic dynamicznych operator ten w ogóle się nie przydaje.
int wielkosc, *wsk;
cin >> wielkosc;
wsk = new int[wielkosc];
W taki sposób tworzy się tablice dynamiczne. Do tablicy takiej odnosisz się używając nazwy wskaźnika, który pokazuje na jej początek (w tym wypadku wsk). Teraz uwaga: podanie przez użytkownika liczby 1234 nie spowoduje utworzenia tablicy 4-elementowej, tablica ta będzie mieć 1234 elementów (bo tyle wynosi wartość zmiennej wielkosc).
Jeśli chodzi o rozwiązanie, w którym podanie liczby 12345 skutkuje utworzeniem tablicy 5-elementowej to wydaje mi się ono zupełnie bezsensowne i nie proponowałbym go.
Nie. Po pierwsze to niezgodne z regulaminem, po drugie nie ma to żadnej wartości dydaktycznej. Wiesz już, jak działa mechanizm, teraz musisz tylko zmodyfikować program tak, by działał zgodnie z przyjętą przez Ciebie koncepcją. Powodzenia