1、数据空间(17)< 声明的空间16
uchar DataIn[16] = “1234567890123456”;
那么在调用函数时,DataIn作为入参的话,会出现一些不可预料的问题。
通常定义:
uchar DataIn[] = “1234567890123456”;
如上:定义的数据为:“1234567890123456” 16字节空间,加上停止位为17字节,不声明空间的话,会根据数据所占用的空间,进行默认分配。 此时系统默认分配17字节空间。从而保证函数调用其作为入参的时候,不会出现问题。
实例:
static void ExPedIdKeyCalc_PER1(void)
{
int ret;
uchar State;
uchar DataIn[] = "1234567890123456";
uchar DataIn_Decrypt[256];
int KeyIndex=1;
int Mode=0;
uchar DataOut[256];
uchar EncKeyBlock[4096];
int i=0,cnt=10;
ulong time_ECB,time_CBC, TimeAvr_ECB,TimeAvr_CBC;
ulong StartTime;
memset(EncKeyBlock,0,sizeof(EncKeyBlock));
memset(DataOut,0,sizeof(DataOut));
ret = ExPedOpen();
ASSERT(ret == RET_OK,"ExPedOpen ret = %d\n", ret);
ret = ExPedEraseKeys();
ASSERT(ret == RET_OK,