情形:使用calloc定义了2个字节的空间,但是在两个字节后中memcpy数据,并取数据依然能够取到数据
char* st = (char*)calloc(2,sizeof(char));
uint16_t value1= 100;
uint16_t value2 = 200;
memcpy(st,&value1,sizeof(uint16_t));
memcpy(st+2,&value2,sizeof(uint16_t));
printf("value1=%d\n",*(uint16_t*)st);
printf("value2=%d\n",*(uint16_t*)(st+2));
fflush(stdout);
free(st);
进一步做测试,发现,指针未初始化时,使用memcpy,依然没有报错。