最近移植原有的代码到瑞芯微平台,记录几个小问题,这几个问题有编译器差异导致的问题,也有代码本身的问题,确实代码细节是关键,不能疏忽大意!
1、C 函数 void*返回值没有返回, 触发munmap_chunk:invalid pointer;
2、mqtt-paho库,异常分支情况下MQTTClient_subscribe主题为空,导致mqtt主动断连,出现lost connect现象;
3、void *payload数据直接复制给string,尾巴出现多余字符;
代码语言:javascript复制int msgarrvd(void* context, char* topic_name, int topicLen, MQTTClient_message* message)
{
if (topic_name == NULL || message == NULL) {
return 0;
}
std::string str_topic = topic_name;
char *data = (char *)malloc(message->payloadlen 1);
if (data == NULL){
return 0;
}
memcpy(data, message->payload, message->payloadlen);
data[message->payloadlen] = '