char *sendMsg = (char*)malloc(1024);
memset(sendMsg, 0, 1024);
if(sendMsg) {
printf("@@@@@Will Send Mesg, obj's info:m_interval= %d, sendMsg: %s\n", (*iter)->m_interval, sendMsg);
MqttReportMessage(MQTT_REPORT_GPS, sendMsg, strlen(sendMsg));
(*iter)->m_lastUploadTime = cur_time;
}
为什么会进到if(sendMsg)里面?
malloc 的返回值:
malloc 在成功分配内存时返回指向分配内存的指针
分配失败时返回 NULL 指针
你分配了 1024 字节,在现代系统上这样的小内存分配几乎总是成功的
if(sendMsg) 的含义:
这个条件检查 sendMsg 是否为非 NULL
只要 malloc 成功,sendMsg 就不是 NULL,条件就会成立
只有当 malloc 失败时(极罕见情况),sendMsg 会是 NULL,条件不成立
浙公网安备 33010602011771号