Invalid number of occurrencies in arrays

Stuehlmeyer, Wolfgang Wolfgang.Stuehlmeyer@softwareag.com
Fri Jun 8 01:25:00 GMT 2001


Hello,

i have segmentation violations with snapshot 2001-06-04.

The reason is a array with a invalid number of occurrencies.


Best regards 
Wolfgang


Example:

#include <stdio.h>

enum VT_ARGS { VT_DATE=1,  VT_HRESULT, VT_LPSTR, VT_LPWSTR, VT_ERROR,
VT_BOOL,  VT_BSTR, VT_VARIANT, VT_CY, VT_DECIMAL};

typedef unsigned short VARTYPE;

typedef struct tagINTRINSIC
{
    char * szType;
    VARTYPE vt;
} INTRINSIC;

INTRINSIC rgIntrinsic [] =
{
    "DATE",         VT_DATE,
    "HRESULT",      VT_HRESULT,
    "LPSTR",        VT_LPSTR,
    "LPWSTR",       VT_LPWSTR,
    "SCODE",        VT_ERROR,
    "VARIANT_BOOL", VT_BOOL,
    "wireBSTR",     VT_BSTR,
    "BSTR",         VT_BSTR,
    "VARIANT",      VT_VARIANT,
    "wireVARIANT",  VT_VARIANT,
    "CURRENCY",     VT_CY,
    "CY",           VT_CY,
    "DATE",         VT_DATE,
    "DECIMAL",      VT_DECIMAL
};



int main(int argc, char ** argv)
{

  printf("sizeof(rgIntrinsic) = %d - MUST BE 112!!!\n",
sizeof(rgIntrinsic));


  printf("Number of occurencies: %d - ",
sizeof(rgIntrinsic)/sizeof(INTRINSIC));
  printf("MUST BE  14!!!\n");
}



More information about the Gcc-bugs mailing list