Così funziona:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define chiamate 10
#define giorni 30




char *numeri[]= {"3341431454", "3462154556", "3911177368", "3338083794", "3398379801"};




typedef struct  //Dichiarazione struct con io dati delle chiamate.
{
    char *chiamante;
    int ricevente;
    int durata;
} Dati;




typedef struct  //Dichiarazione struct contenente l'archivio mensile.
{
    Dati elenco[chiamate][giorni];
} Archivio;








Archivio creaDati()  //Funzione per creare l'archivio, essa restituisce una struct di tipo Archivio.
{
    int i=0, j=0, k=0;
    Archivio archivio;


    for (i=0; i<giorni; i++)
    {
        for (k=0; k<chiamate; k++)
        {
            archivio.elenco[k][i].chiamante=malloc(sizeof(Dati));
            j=rand()%5;
            strcpy(archivio.elenco[k][i].chiamante, numeri[j]);
            archivio.elenco[k][i].ricevente = 1000000+rand()%999999+1;
            archivio.elenco[k][i].durata = rand()%121;
        }
    }
    return archivio;
}




void stampaDati(Archivio archivio)  //Procedura per stampare l'archivio, prende come input una struct di tipo Archivio.
{
    int i=0, k=0;
    for (i=0; i<=giorni;)
    {
        printf("\n\n\t\t----------[GIORNO %d]----------\n\n      CHIAMANTE\t\tRICEVENTE\t\tDURATA", i+1);
        for (k=0; k<chiamate; k++)
        {
            printf("\n[C.%d] %s\t%d\t\t\t%d\tmin.", k+1, archivio.elenco[k][i].chiamante, archivio.elenco[k][i].ricevente, archivio.elenco[k][i].durata);
        }
        printf("\n\n\t\tPremi invio per scorrere l'elenco.\n\t\t    Premi 'e' per ritornare.\n");
        getchar();
        if (getchar()=='e')
            break;
        else
            i++;
    }
}




void stampaElenco()  //Procedura per stampare l'elenco dei numeri.
{
    int i=0;
    printf("I numeri presenti nel database sono i seguenti:\n");
    for (i=0; i<5; i++)
        printf("[N%d]  (+39)%s\n", i+1, numeri[i]);
    getchar();
}




int main()
{
    srand(time(NULL));


    Archivio simula;
    stampaElenco();
    simula = creaDati();
    stampaDati(simula);
    return 0;
}

C'è ancora qualcosa di sbagliato (secondo me) nel fatto che premendo 'e' non esce, comunque dovresti riuscire a sistemare facilmente.
Il problema era nel ciclo for: avevi messo i<=giorni mentre deve essere i<giorni. Ricordati che si va da 0 a (giorni-1).
E poi c'erano due doppi cicli for, mentre uno è sufficiente.