Dear managers,
I get an unexpected result running the following program on
AlphaServer 400/DU 4.0d/Patch kit 4 compiled with DIGITAL C++ V6.0-006:
---------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
typedef struct param {
int *num;
} Param;
main()
{
Param d[14];
d[7].num=(int *)malloc(sizeof(int));
memset(d[7].num, 0, sizeof(int));
printf("Before: %d\n", *d[7].num);
*d[7].num=2;
assert(*d[7].num==2);
printf("After: %d\n", *d[7].num);
return 0;
}
---------------------------------------
The output is:
Before: 0
Assertion failed: *d[7].num==2, file test.cxx, line 18
IOT/Abort trap
In other words I can't assign the value to array element member
dereferencing it. When I run this program compiled with C compiler it
works as it should:
Before: 0
After: 2
So my questions: Is this a fault in cxx compiler? Are there any ways to
resolve this problem?
Thanks in advance for any info.
Rustam
--
Rustam Usmanov, systems engineer <rustam_at_unilib.neva.ru>
Open Library Systems Center, St.Petersburg State Technical University
Address: 29, Politekhnitcheskaya str., St.Petersburg, 195251, Russia
Tel/fax: +7(812)-552-7654 <http://www.unilib.neva.ru/olsc/>
Received on Wed Oct 13 1999 - 13:52:59 NZDT