#include <stdio.h> #include <stdlib.h> #include <string.h>
#define TAGLIA 415 main() { int i, j, k, iran; unsigned int seed; float unran; float mata[TAGLIA][TAGLIA], matb[TAGLIA][TAGLIA], matc[TAGLIA][TAGLIA]; srand(seed); printf("init start...\n"); /* this should init all elements with pseudo-random float values */ for(i=0;i<TAGLIA;i++) { for(j=0;j<TAGLIA;j++) { iran=rand(); unran = iran / 1.0E10; mata[i][j]=unran; iran=rand(); unran = iran / 1.0E10; matb[i][j]=unran; matc[i][j] = 0.0; } } printf("init end.....\n"); /* do something to grab cpu-time */ for(i=0;i<TAGLIA;i++) { for(j=0;j<TAGLIA;j++) { for (k=0;k<TAGLIA;k++) matc[i][j]=matc[i][j]+mata[i][k]*matb[k][j]; } } printf("all done.....\n"); } No informational and/or warnings while building it: gcc unlucky.c -o unlucky.exe It works for TAGLIA < 416 With TAGLIA = 416 it looks unusually fast and without outputs with TAGLIA > 416 it crashes: [EMAIL PROTECTED] ~ $ ./unlucky.exe Segmentation fault (core dumped) $ more unlucky.exe.stackdump Exception: STATUS_STACK_OVERFLOW at eip=00401593 eax=00001774 ebx=00000004 ecx=00032064 edx=00401098 esi=610F3060 edi=61005AC0 ebp=0022F068 esp=0022F05C program=d:\cygwin\home\sysnaz\unlucky.exe, pid 1232, thread main cs=001B ds=0023 es=0023 fs=0038 gs=0000 ss=0023 Stack trace: Frame Function Args 0022F068 00401593 (00000001, 616D5310, 0A0500A8, 0022F0C0) 0022F0A8 61005F54 (0022F0C0, 00000000, 00000000, 00000000) 0022FF88 6100616B (00000000, 00000000, 00000000, 00000000) End of stack trace What does it happen? the same code built on linux doesn't crashes.. Thanks in advance for help. bye. ____________________________________________________________________ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/