Możesz to zrobić tak jak napisałeś ale:
1. Będzie to rozwiązanie nieefektywne.
2. Tworząc tablice kupujesz wiele problemów z dealokacją pamięci i ręcznym jej zarządzaniem.
3. Powstanie kod kruchy i podatny na wprowadzenie błędów.
Lepiej użyć std::vector który rozwiązuje te problemy i algorytmu KMP który efektywnie szuka wzorca. Ale pewnie "kazali zrobić tak jak kazal". No to trochę lepiej będzie tak...
#include <iostream>
#include <cstddef>
int main() {
std::size_t tablica1_ilosc;
std::cout << "Podaj ilość elementów 1 tablicy: ";
std::cin >> tablica1_ilosc;
// TODO: Kontrola wprowadzonych danych..
int * tablica1 = new int[tablica1_ilosc];
for(std::size_t i = 0; i < tablica1_ilosc; ++i) {
std::cout << "Podaj element nr "
<< (i + 1) << " tablicy: ";
std::cin >> tablica1[i];
// TODO: Kontrola wprowadzonych danych..
}
// To samo dla tablicy 2...
// Obowiązkowe!
delete [] tablica1;
}