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號