网络上介绍 strcpy strcmp 这些相关function有些风险,就是可能会造成 memory
越界问题。所以使用 strncpy strncmp 这些来替代。
原因是strcmp(a,b),b若没有空字符结尾,他会一直比下去,会有存取到未知memory
风险。所以用strncmp代替。
现在我开发nRF5 BLE 相关系列。BLE底层callback回来有 uint8_t *p_data 和长度。
我从APP传过去是一个 device name,callback接收到后只会是hex byte由 p_data指向
请问你们把它存成字串会是怎样的安全作法?
1 在BLE内先宣告长度20的阵列。array[0]= p_data
array[1]= p_data+1
..
array[18] = p_data+18
array[19] = '\0'
2 memcpy(array, p_data, sizeof(array));
第二种我不确定安不安全。假设p_data没有到20那么长,不就也会把p_data指向的
memory越界了吗?
请多多指教QQ