2015-10-09 48 views
0

我的芯片只是停止做任何事情。有時它打印了良好的效果,有時它不是,我只是無法理解什麼是錯,此代碼(一般你使用字符串它發生任何時間)操縱字符串時崩潰和奇怪的行爲

void ParseGetRequest(char* data) 
{ 

      String parseGET=data; 
      String from="GET /"; 
      String to="HTTP"; 
      int ind1 = parseGET.indexOf(from); 
      int ind2 = parseGET.indexOf(to); 
      parseGET=parseGET.substring(ind1+from.length(), ind2-1); 
      strcpy(data, parseGET.c_str()); 

} 

而且與調用它:

void readWifDataAsSever(char* reqData) 
{ 

    uint8_t buffer[128] = {0}; 
    uint8_t mux_id; 
    uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100); 
    char serverData[100]={0}; 


    if (len > 0) 
    { 

     for(uint32_t i = 0; i < len; i++) 
      serverData[i]=(char)buffer[i]; 



     ParseGetRequest(serverData); ///****** the call 

     Serial.println(serverData); // prints only part of the values 
//here the chip just freeze and stop the main loop 

回答

0

NULL終止!!!!

serverData[len ] = '\0'; 
+0

請考慮在答案中增加更多信息。雖然這很好,但您試圖通過回答自己的問題來分享知識,除非您在答案中包含信息,但實際上並沒有這樣做。 – Matt