我有以下代码:
uint8_t buffer[16];
uint8_t data[16];
uint8_t buffer_length = 16;
uint8_t data_length = 0;
memcpy(buffer + buffer_length, data, data_length);
memcpy
应该是无操作的,因为data_length
是零.然而,buffer + buffer_length
点正好在分配的内存之外.我想知道这是否会引发某种不确定的行为?我是不是应该把这个memcpy
包在另外if
个包里?
我明白,任何合理的memcpy
实现都可以很好地工作,但是这个问题更多的是从代码正确性的Angular 和避免未定义的行为.