Felipe Covarrubias escribió: > #include<stdio.h> > #include<stdlib.h> > > #define M 100 > #define N 100 > > /* este codigo C lo que hace es comerce la memoria del sistema > * hasta optener un error de segmention fault probocado por el > * kernel del sistema operativo, linux en este caso enviando > * este al binario una señal de interrupcion de software > */ > > int rand() > { > int a; > a=1+(int) (10.0*rand()/(RAND_MAX+1.0)); > return a; > } > > > int main() > { > > int i,j; > int array[M][N]; > > for(i=0;i<M;i++) > { > for(j=0;j<N;j++) > { > array[M][N]=rand(); > } > } > > return 1; > > } > ~ > > bueno seria interesante que lo probaras en bsd y me contaras que > resultado tuviste, ademas te advierto que dependiendo de cuanta > memoria(ram+swap) poseas sera lo que tarde en probocarse la violacion > de segmento, y tambien que segun las capacidades de tu maquina sera > cuan aturdida se ponga durante la ejecucion del proceso. > > salu2 > Xhauu.... >
Gracias pero hice un codigo mas bonito. No tienes para que llenarlo con un valor aleatorio. Tambien queda mas bonito reservando 1KB con malloc y ocupandolo con puros 0xff y anda mas rapido (si pides memoria con malloc y no la ocupas en verdad Linux todavia no te la ha pasado y la tiene marcada como libre, asi que hay que llenarla con alguna mugre.). Tambien estaba viendo leer cuanta ram hay disponible en /proc/meminfo y ahi ver cuanto puedo ocupar, asi podria dejar un par de megas libres y no demoraria tanto en la parte final (Cuando queda poca ram empieza a demorarse mucho mi programa y el sistema empieza a volverse inestable...). -- Felipe Cristian Barriga Richards Osorno, Chile http://www.felipebarriga.cl