i have a program to calculate the CRC for a group of array values.
SO i have program in a different file and i am passing the length and the array to the function and i am getting a access voilation error. couldnt understand why? plz help,
here is my code
crc file code
#include<stdio. h>
#include<window s.h>
#define WIDTH 16
#define TOPBIT (1<<15)
USHORT bytewisecrc(DWO RD framesize,DWORD *recvbuf[])
{
USHORT table[] = { 0X0000,0X1021,0 X2042,0X3063,0X 4084,0X50A5,0X6 0C6,0X70E7,
0X8108,0X9129,0 XA14A,0XB16B,0X C18C,0XD1AD,0XE 1CE,0XF1EF,
0X1231,0X0210,0 X3273,0X2252,0X 52B5,0X4294,0X7 2F7,0X62D6,
0X9339,0X8318,0 XB37B,0XA35A,0X D3BD,0XC39C,0XF 3FF,0XE3DE,
0X2462,0X3443,0 X0420,0X1401,0X 64E6,0X74C7,0X4 4A4,0X5485,
0XA56A,0XB54B,0 X8528,0X9509,0X E5EE,0XF5CF,0XC 5AC,0XD58D,
0X3653,0X2672,0 X1611,0X0630,0X 76D7,0X66F6,0X5 695,0X46B4,
0XB75B,0XA77A,0 X9719,0X8738,0X F7DF,0XE7FE,0XD 79D,0XC7BC,
0X48C4,0X58E5,0 X6886,0X78A7,0X 0840,0X1861,0X2 802,0X3823,
0XC9CC,0XD9ED,0 XE98E,0XF9AF,0X 8948,0X9969,0XA 90A,0XB92B,
0X5AF5,0X4AD4,0 X7AB7,0X6A96,0X 1A71,0X0A50,0X3 A33,0X2A12,
0XDBFD,0XCBDC,0 XFBBF,0XEB9E,0X 9B79,0X8B58,0XB B3B,0XAB1A,
0X6CA6,0X7C87,0 X4CE4,0X5CC5,0X 2C22,0X3C03,0X0 C60,0X1C41,
0XEDAE,0XFD8F,0 XCDEC,0XDDCD,0X AD2A,0XBD0B,0X8 D68,0X9D49,
0X7E97,0X6EB6,0 X5ED5,0X4EF4,0X 3E13,0X2E32,0X1 E51,0X0E70,
0XFF9F,0XEFBE,0 XDFDD,0XCFFC,0X BF1B,0XAF3A,0X9 F59,0X8F78,
0X9188,0X81A9,0 XB1CA,0XA1EB,0X D10C,0XC12D,0XF 14E,0XE16F,
0X1080,0X00A1,0 X30C2,0X20E3,0X 5004,0X4025,0X7 046,0X6067,
0X83B9,0X9398,0 XA3FB,0XB3DA,0X C33D,0XD31C,0XE 37F,0XF35E,
0X02B1,0X1290,0 X22F3,0X32D2,0X 4235,0X5214,0X6 277,0X7256,
0XB5EA,0XA5CB,0 X95A8,0X8589,0X F56E,0XE54F,0XD 52C,0XC50D,
0X34E2,0X24C3,0 X14A0,0X0481,0X 7466,0X6447,0X5 424,0X4405,
0XA7DB,0XB7FA,0 X8799,0X97B8,0X E75F,0XF77E,0XC 71D,0XD73C,
0X26D3,0X36F2,0 X0691,0X16B0,0X 6657,0X7676,0X4 615,0X5634,
0XD94C,0XC96D,0 XF90E,0XE92F,0X 99C8,0X89E9,0XB 98A,0XA9AB,
0X5844,0X4865,0 X7806,0X6827,0X 18C0,0X08E1,0X3 882,0X28A3,
0XCB7D,0XDB5C,0 XEB3F,0XFB1E,0X 8BF9,0X9BD8,0XA BBB,0XBB9A,
0X4A75,0X5A54,0 X6A37,0X7A16,0X 0AF1,0X1AD0,0X2 AB3,0X3A92,
0XFD2E,0XED0F,0 XDD6C,0XCD4D,0X BDAA,0XAD8B,0X9 DE8,0X8DC9,
0X7C26,0X6C07,0 X5C64,0X4C45,0X 3CA2,0X2C83,0X1 CE0,0X0CC1,
0XEF1F,0XFF3E,0 XCF5D,0XDF7C,0X AF9B,0XBFBA,0X8 FD9,0X9FF8,
0X6E17,0X7E36,0 X4E55,0X5E74,0X 2E93,0X3EB2,0X0 ED1,0X1EF0};
USHORT data;
USHORT crc;
int byt;
USHORT remainder = 0Xffff;
for ( byt = 0; byt <framesize; ++byt)
{
data = (USHORT)recvbuf[byt] ^ (remainder >> (WIDTH - 8));
remainder = table[data] ^ (remainder << 8);
crc = remainder;
}
return (crc);
}
and in my main i have this code
DWORD recvbuf[] = {0XAA,0X31,0X01 ,0XC6,0X1E,0X36 ,0X44,0X85,0X27 ,0XF0,0X56,0X07 ,0X10,0X98,0X00 ,0X0F,0X42,0X40 ,0X00,0X01,0X53 ,0X74,0X61,0X74 ,0X69,0X6F,0X6E ,0X20,0X41,0X20 ,0X20,0X20,0X20 ,0X20,0X20,0X20 ,0X1E,0X36,0X00 ,0X04,0X00,0X04 ,0X00,0X03,0X00 ,0X01,0X56,0X41 ,0X20,0X20,0X20 ,0X20}
DWORD crccalculated;
crccalculated = bytewisecrc(fra mesize,recvbuf[framesize]);
there is a access violation error while running the program.