Buffer overrun c/c++

di il
1 risposte

Buffer overrun c/c++

Salve a tutti,
potreste darmi un consiglio su come individuare gli indici errati nei vettori?

Se ho

int vect[100];
char c[3][5];

vect[200] = 7;
c[4][3] = 0;

qual è il sistema per accorgermene, visto che i compilatori non danno alcuna indicazione nè in fase di esecuzione viene rilevato nulla?

Vi ringrazio

1 Risposte

  • Re: Buffer overrun c/c++

    Saresti un idiota se dichiari un array di 100 elementi e vai ad assegnare un valore al 200esimo elemento. Che mi indica questa cosa.
    Al massimo utilizzi un indice una variabile in un for ad esempio:
    
    for (int i=0; i<100;i++)
    vect[i]=5;
    
    oppure gestisci con un if
    
    //esiste la variabile i a cui è stato già assegnato un valore
    if(i<100 && i>=0)
    vect[i] = 200;
    
Devi accedere o registrarti per scrivere nel forum
1 risposte