Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Reset di un char array
Forum - C/C++ - Reset di un char array

Avatar
Thejuster (Member)
Guru^2


Messaggi: 1932
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:29
Venerdì, 08/03/2019
Buonasera.
Sono alle prese con il Char array ma non riesco a liberare il contenuto seppure è contenuto in una funzione

Codice.

Codice sorgente - presumibilmente C/C++

  1. ACMD_FUNC(discord)
  2. {
  3.         nullpo_retr(-1, sd);
  4.  
  5.         //sprintf(atcmd_output, "%s: %s", sd->status.name, message);
  6.         //intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, BC_DEFAULT);
  7.  
  8.  
  9.         sprintf(atcmd_output, "%s", message);
  10.  
  11.         //sprintf(atcmd_output, "%s: %s", sd->status.name, message);
  12.         clif_displaymessage(sd->fd, atcmd_output); //Mostro come un Messaggio Normale
  13.  
  14.        
  15.  
  16.         std::string canale = "#main"; //Creo un canale
  17.  
  18.  
  19.         Channel *chan = channel_name2channel((char*)canale.c_str(), NULL, 0);
  20.         clif_channel_msg(chan, sd->message, BC_BLUE); //Mostro Messaggio nella chat ma non sul player
  21.        
  22.        
  23.         ShowStatus(atcmd_output);
  24.  
  25.        
  26.        
  27.         /*if (Sql_Query(mmysql_handle, "UPDATE `%s` SET `autotrade` = 1 WHERE `id` = %d;", vendings_table, sd->vender_id) != SQL_SUCCESS) {
  28.                 Sql_ShowDebug(mmysql_handle);
  29.         }*/
  30.        
  31.  
  32.         return 0;
  33. }




se dal gameclient scrivo 3 volte lo stesso comando con testo diverso

mi appare tipo
ciaociao dal clientciao dal clientprova


https://cdn.discordapp.com/attachments/227530413063536641/5 ...

Come posso liberare il testo nella variabile?

ho provato con free(atcmd_output);

Ma crasha il server.



PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1590
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 22:44
Venerdì, 08/03/2019
Testo quotato

Postato originariamente da Thejuster:
Buonasera.
Sono alle prese con il Char array ma non riesco a liberare il contenuto seppure è contenuto in una funzione

Codice.

Codice sorgente - presumibilmente C/C++

  1. ACMD_FUNC(discord)
  2. {
  3.         nullpo_retr(-1, sd);
  4.  
  5.         //sprintf(atcmd_output, "%s: %s", sd->status.name, message);
  6.         //intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, BC_DEFAULT);
  7.  
  8.  
  9.         sprintf(atcmd_output, "%s", message);
  10.  
  11.         //sprintf(atcmd_output, "%s: %s", sd->status.name, message);
  12.         clif_displaymessage(sd->fd, atcmd_output); //Mostro come un Messaggio Normale
  13.  
  14.        
  15.  
  16.         std::string canale = "#main"; //Creo un canale
  17.  
  18.  
  19.         Channel *chan = channel_name2channel((char*)canale.c_str(), NULL, 0);
  20.         clif_channel_msg(chan, sd->message, BC_BLUE); //Mostro Messaggio nella chat ma non sul player
  21.        
  22.        
  23.         ShowStatus(atcmd_output);
  24.  
  25.        
  26.        
  27.         /*if (Sql_Query(mmysql_handle, "UPDATE `%s` SET `autotrade` = 1 WHERE `id` = %d;", vendings_table, sd->vender_id) != SQL_SUCCESS) {
  28.                 Sql_ShowDebug(mmysql_handle);
  29.         }*/
  30.        
  31.  
  32.         return 0;
  33. }




se dal gameclient scrivo 3 volte lo stesso comando con testo diverso

mi appare tipo
ciaociao dal clientciao dal clientprova


https://cdn.discordapp.com/attachments/227530413063536641/5 ...

Come posso liberare il testo nella variabile?

ho provato con free(atcmd_output);

Ma crasha il server.




Ci credo che cresha, free serve per rilasciare al sistema operativo la memoria, non per resettarla. Per resettare un array si usa memset((void*)array, 0, lughezza)

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1932
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:40
Mercoledì, 13/03/2019
grazie mille juster!


PM Quote