Pourquoi ma variable est detruite au fure et a mseure

Merci beaucoup,
J'ai changé un peu mon coce, car j'avais fait trop compliquéet j'ai refait plus simple.
Mais ton exemple me sera fort utile et je prendrai le temps de le lire en entier.

Par contre je deviens fou et je crois qe j'ai des gros probleme a comprendre l'allocation des tailles pour un char.

Quand je tape 'send' dans mon terminal,
Serial.println(coords); affiche bien ca

lo=608.482777&la=4613.163541&al=459.471680&ti=20130715215238&ve=0.000000

Ce qui me rend fou, c'est quand je decommente ceci

Serial.println(strlen(coords));

mon programme plante.

Et j'ai pourtant change, comme tu l'a suggéré plus haut ceci

char coords[150];

mais ca ne vas pas mieux

J'ai refait mon code aisni:

// Ceci est aussi déclaré plus haut
char lon[15];
char lat[15];
char alt[15];
char time[14];
char vel[15];
char msg1[5];
char msg2[5];

char lo[]="lo=";
char la[]="&la=";
char al[]="&al=";
char ti[]="&ti=";
char ve[]="&ve=";
char en[]="\0";


    // SEND DATA
    if(!strcmp(inSerial,"send")){
        #ifdef DEBUG
          Serial.println(F(""));
          Serial.println(F("SENDING COORDS TO THE REMOTE SERVER"));
          Serial.println(F("---------------------------------------"));
        #endif
        
        #ifdef DEBUG
          stat=gps.getStat();
          if(stat==1){
            Serial.println(F("NOT FIXED"));
          }else if(stat==0){
            Serial.println(F("GPS OFF"));
          }else if(stat==2){
            Serial.println(F("2D FIXED"));
          }else if(stat==3){
            Serial.println(F("3D FIXED"));
          }
          delay(5000);
        #endif    
  
        //Get data from GPS
        /*
        memset(&lon, 0 , sizeof(lon));
        memset(&lat, 0 , sizeof(lat));
        memset(&alt, 0 , sizeof(alt));
        memset(&time, 0 , sizeof(time));
        memset(&vel, 0 , sizeof(vel));
        */
        gps.getPar(lon,lat,alt,time,vel);
      
        //char coords[150];
        char coords[97];
        
        //memset(&coords, 0 , sizeof(coords));
        
        
        strcpy(coords,lo);          //3
        //strncat(coords,lon,15);    //18
        strcat(coords,lon);
 
        strcat(coords,la);         //22
        //strncat(coords,lat,15);    //37
        strcat(coords,lat);
  
        strcat(coords,al);         //41
        //strncat(coords,alt,15);    //56
        strcat(coords,alt);

        strcat(coords,ti);         //60
        strncat(coords,time,14);   //74
        //strcat(coords,time);
  
        strcat(coords,ve);         //78
        //strncat(coords,vel,15);    //93
        strcat(coords,vel);
  
        strcat(coords,en);       //95
        
        Serial.println(coords);

      //  Serial.println(strlen(coords));
/*        
        inet.httpPOST(host, port_post, path_post, coords, "Result", 50);
   */     
        delay(10000);
        
        enterCommand();
    }

Pourquoi ca plante??? =(