• [^] # Re: Hope this helps

    Posté par . En réponse au message question sur la structure du code que fait le compilateur (.text, .bss, .heap ...). Évalué à 1.

    Petite correction:

    Il me semble aussi que le principe le plus courant est d'avoir une pile de taille limitée, ce qui conduit à un stack overflow quand tu essayes de la dépasser.

    Alors oui et non.
    Un stack overflow (ou débordement de pile), tel que compris par la majorité, peut effectivement arriver en cas de remplissage de la pile, mais, bien souvent, point besoin de remplir les X Mo de la pile pour y arriver.

    Soit le code ci-dessous:

    int plop(char *pouet) {
     char le_vilain_tampon[50];
     strcpy(le_vilain_tampon, pouet);
     return(0);
    }
    int main(int ac, char **av)
    {
     plop(av[1]);
     return(0);
    }

    Il te suffira d'appeler ton programme avec, en premier argument, une chaine composée d'un peu plus de 50 caractères (dépend des options de compil', de l'archi, etc...) pour avoir un beau stack overflow.

    Pour approfondir, je conseille ce mythique article d'Aleph One