Salut,
On peut fortement envisager le fait qu'il y ait quelque chose entre la partie
for(long i=0; i<100; i++) Tablo[i]=i;
et la partie
Et il y a fort à parier (bien que n'ayant pas vu le code) qu'il y aura l'un ou l'autre appel de fonction 
Si l'une de ces fonctions appelées (ou pire, l'une des fonctions éventuellement appelées par une des fonctions qui se trouve entre les deux parties de code) appelle delete[] sur Tablo (ou sur le nom qu'il obtient lors du passage par argument), bien que *sensé* représenter une adresse valide, ce n'est peut être plus le cas.
A ce moment là, toute tentative de refaire un delete[] sur cette adresse - devenue invalide - occasionnera systématiquement une violation d'accès 
Si donc, tu as d'autres fonctions qui peuvent vouloir libérer la mémoire de ce pointeur, il est préférable de fournir un pointeur de pointeur comme argument, de libérer la mémoire sur ce qui est pointé par cet argument et de le faire pointer sur NULL.
Cela permettra, au sortir de la fonction, que Tablo valle NULL et donc que le test ne provoque pas cette tentative de nouvelle libération de la mémoire 
Ceci dit, on ne peut que t'inciter à envisager l'utilisation des std::vector<un type> aussi souvent que possible
Partager