This repository has been archived on 2019-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
s6-pa-tp/TP6/buginsa.c
2017-03-27 15:59:08 +02:00

40 lines
779 B
C

/* bug.c, source: Christian NGUYEN */
#include <stdio.h>
#include <stdlib.h>
void place( int *t, int i, int j)
{
t [ i ] = j;
}
void traitement( int n )
{ int *t;
// unsigned int i;
// On remarque que i passe de 0 à 4294967295
// Étant donné que i n'est pas signé, on a un underflow
// une solution pourrait être de mettre i en signé,
// ou de le compter dans le sens positif
int i;
t = (int*) malloc(n * sizeof(int ));
for( i = n-1; i >= 0 ; i--)
place( t, i , i*i ) ;
free( t );
}
int main ( int argc, char *argv[] )
{ int n;
if (argc == 2)
{n = atoi( argv[1] );
printf("\nbug du -1\n");
traitement( n );
printf("done...\n");
}
else
{
printf("nb arguments should be one");
}
return 0;
}