<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【隨筆】cJSON內(nèi)存泄露問題

      在網(wǎng)上搜到cJSON通過cJSON_CreateObject()來添加節(jié)點,其實這樣是錯誤的,這樣會使得該根部節(jié)點下創(chuàng)建的節(jié)點無法釋放內(nèi)存。
      `
      void update_info(void)
      {
      cJSON* Data_ReadytoSend=NULL;
      cJSON* DR_Data=NULL;
      cJSON* Sensitivity_data=NULL;
      cJSON* Version_data=NULL;
      char* data_buffer;

      Data_ReadytoSend = cJSON_CreateObject();
      DR_Data = cJSON_CreateObject();
      Sensitivity_data = cJSON_CreateObject();
      Version_data = cJSON_CreateObject();
      
      cJSON_AddItemToObject(Data_ReadytoSend, "Digital Potentiometer", DR_Data);
      cJSON_AddNumberToObject(DR_Data, "CH1", Settings.Register1_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH2", Settings.Register1_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH3", Settings.Register2_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH4", Settings.Register2_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH5", Settings.Register3_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH6", Settings.Register3_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH7", Settings.Register4_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH8", Settings.Register4_RADC2);
      
      
      cJSON_AddItemToObject(Data_ReadytoSend, "Port Sensitivity", Sensitivity_data);
      cJSON_AddNumberToObject(Sensitivity_data, "Port1", Settings.Port1_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port2", Settings.Port2_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port3", Settings.Port3_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port4", Settings.Port4_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port5", Settings.Port5_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port6", Settings.Port6_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port7", Settings.Port7_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port8", Settings.Port8_Sensitivity);
      
      cJSON_AddStringToObject(Data_ReadytoSend, "Version", "V1.1");
      
      data_buffer = cJSON_Print(Data_ReadytoSend);
      Serial.println(data_buffer);
      // writeFile(LittleFS, CONFIG_FILE, (uint8_t*)cJSON_Print(Data_ReadytoSend));
      cJSON_free(data_buffer);
      cJSON_Delete(Data_ReadytoSend);
      cJSON_Delete(DR_Data);
      cJSON_Delete(Sensitivity_data);
      cJSON_Delete(Version_data);
      

      }
      正確的方法應(yīng)該是使用cJSON_AddObjectToObject()來創(chuàng)建目錄節(jié)點,這樣子就不會有內(nèi)存泄露的問題。
      void update_info(void)
      {
      cJSON* Data_ReadytoSend=NULL;
      cJSON* DR_Data=NULL;
      cJSON* Sensitivity_data=NULL;
      cJSON* Version_data=NULL;
      char* data_buffer;

      Data_ReadytoSend = cJSON_CreateObject();
      
      DR_Data = cJSON_AddObjectToObject(Data_ReadytoSend, "Digital Potentiometer");
      cJSON_AddNumberToObject(DR_Data, "CH1", Settings.Register1_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH2", Settings.Register1_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH3", Settings.Register2_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH4", Settings.Register2_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH5", Settings.Register3_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH6", Settings.Register3_RADC2);
      cJSON_AddNumberToObject(DR_Data, "CH7", Settings.Register4_RADC1);
      cJSON_AddNumberToObject(DR_Data, "CH8", Settings.Register4_RADC2);
      
      Sensitivity_data = cJSON_AddObjectToObject(Data_ReadytoSend, "Port Sensitivity");
      cJSON_AddNumberToObject(Sensitivity_data, "Port1", Settings.Port1_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port2", Settings.Port2_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port3", Settings.Port3_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port4", Settings.Port4_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port5", Settings.Port5_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port6", Settings.Port6_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port7", Settings.Port7_Sensitivity);
      cJSON_AddNumberToObject(Sensitivity_data, "Port8", Settings.Port8_Sensitivity);
      
      Version_data = cJSON_AddObjectToObject(Data_ReadytoSend, "Version");
      cJSON_AddStringToObject(Version_data, "Version", "V1.1");
      
      data_buffer = cJSON_Print(Data_ReadytoSend);
      Serial.println(data_buffer);
      // writeFile(LittleFS, CONFIG_FILE, (uint8_t*)cJSON_Print(Data_ReadytoSend));
      cJSON_free(data_buffer);
      cJSON_Delete(Data_ReadytoSend);
      

      }
      `

      posted @ 2025-06-19 14:27  Ary-ovo  閱讀(48)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产国拍精品av在线观看| 特级毛片a片久久久久久| 国产熟女精品一区二区三区| 国产一区二区视频啪啪视频| 亚洲精品在线二区三区| 免费观看全黄做爰大片| 西西人体大胆444WWW| 洛扎县| 国产午夜福利av在线麻豆| 久青草国产在视频在线观看| 欧美性大战xxxxx久久久| 色av专区无码影音先锋| 国产一区二区不卡91| 18无码粉嫩小泬无套在线观看| 精品视频在线观自拍自拍| 婷婷久久香蕉五月综合加勒比 | 无码一区中文字幕| 国产精品亚洲国际在线看| 无码成人一区二区三区| 亚洲成a人片在线观看中| 高清欧美性猛交xxxx黑人猛交| 国产精品视频不卡一区二区| 94人妻少妇偷人精品| 加查县| 成人福利一区二区视频在线| 亚洲AV永久无码一区| 四虎影视一区二区精品| 久久精品国产精品亚洲综合| 99er热精品视频| 日韩精品福利视频在线观看| 免费人成网站视频在线观看| 国产盗摄xxxx视频xxxx| 日韩精品国产另类专区| 自拍偷自拍亚洲精品熟妇人| 国产精品二区中文字幕| 亚洲精品国产suv一区88| 国产精品老熟女乱一区二区| 国产目拍亚洲精品二区| 阜宁县| 精品国产一区二区三区国产区| 精品日韩亚洲av无码|