Dennis:
You shot yourself in the foot.
int *comb;
...
comb = ( int * ) calloc( (size_t) k, sizeof(int) );
for ( i = 0; i < k; ++i)
*( comb + i * sizeof(int) ) = i;
'comb' is a pointer to an int.
As such, 'comb + n' is really '(caddr_t)comb + n * sizeof (int))'
This line:
*( comb + i * sizeof(int) ) = i;
writes outside the range of the allocated space,
causing heap corruption, which leads to the core dump.
The line should read:
*( comb + i ) = i;
or:
comb[i] = i;
You were just lucky that it worked at all
with the first set of parameters.
Roger
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code