Secondo me, non funziona se ci sono sequenze parzialmente (all'inizio) uguali, esempio:

codice:
int main()
{
  int vet[10]{1,1,2,3,4,5,1,3,3,9};
  int src[3]{1,2,3};
  std::cout << ricerca_sequenza(vet,src,10,3);
}
Dovresti ottenere 1, invece il tuo algoritmo da 0. Questo perchè mandi avanti i anche nel while