[Bulma] Gestió de memòria
Toni Pizà
servomac en gmail.com
Mar Dic 11 15:47:25 CET 2007
Bones! He intentat fer una matriu bidimensional de caracters en C, de
dimensió 5000 * 5000. Si tan sols faig la declaració i acab el
programa, funciona bé, per exemple :
1 #include <stdio.h>
2
3 #define MAX 5000
4
5 int main() {
6 char matriu[MAX][MAX];
7
8 return 0;
9 }
En canvi, si faig qualsevol cosa, una assignació o una crida a funció,
després de la delcaració, retorna un core dumped quan l'intent
executar. Per exemple, si a la linia 7 pos un simple printf("Hello
world!\n"), rebenta.
Si ajust la mida de la matriu a 2985, a vegades rebenta i a vegades
s'executa correctament. La màquina té 1 GB de RAM i dos gigas de swap,
per memòria física no crec que sigui. Sembla un Expedient X :P
Estic fent feina amb una KUbuntu amb kernel 2.6.22-14-generic, la
versió 2.6.1-1ubuntu10 de libc6-dev, gcc versió 4.1.3 20070929 i el
següent ulimit :
servo en lab:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 8126
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 8126
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Algú sap que podria ser?? Em té intrigat .. :)
--
http://servomac.blogspot.com
Más información sobre la lista de distribución Bulmailing