Puntatore a caratteri e stringa

di zio_mangrovia il
3 risposte
class word {
   ...
public: 
   word(const char r[]="") { ... }
   ...
};

int main() {
   ...
   word c("prova");
   ...
}
Secondo voi se al posto di const char r[]="" potrei sostituire const char *=""

3 Risposte

  • Ciao,

    cosa vorresti fare con il comando:
    const char *=""
    ?
    Vorresti forse creare un array di char costante sotto forma di puntatore?
    In C (conoscenza di programmazione di giusto qualche anno fa all' ITIS) quando tu definisci un array di fatto stai solo assegnando ad un riferimento una parte di memoria che contiene un vettore. La sintassi che hai indicato però mi pare sbagliata per diversi motivi:
    1. mancha un identificativo( ad esempio in
    int cont = 0;
    cont è l'identificativo)
    2. per dichiarare una variabile puntatore devi concatenare il carattere * con il tipo ( esempio
     char* c;
    )
    3. non ho ben capito come tu voglia utilizzare i doppi apici, forse come assegnamento? in questo caso è sbagliato. Se tu vuoi creare una variabile puntatore non puoi assegnarli un carattere(che per altro si fa con gli apici singoli) ma bensi un indirizzo (esempio
    char c = 'a'; char* p = *c;
    )


    Secondo me, quello che ho capito tu vorresti fare, si fa cosi:
    char* r[DIM]
    poi per inizializzarlo puoi fare un ciclo
    del tipo
    
    for(int i = 0; i < DIM; i++, r++)
    	*r = ' ';
    
    Spero che le cose appena scritte siano giuste, sinceramente non me le ricordo bene. Prova ad aspettare anche qualche altra risposta
  • potrei sostituire const char *=""
    Devi indicare il nome dell'argomento, quindi

    const char *r = ""



    @glcbattocchio ... sei andato oltre, parlando di vettori di puntatori a char, che non c'entrano nulla con il quesito posto e il cui codice successivo di inizializzazione è sbagliato.
  • oregon ha scritto:



    Devi indicare il nome dell'argomento, quindi
    const char *r = ""
    scusate la distrazione, l'assenza dell'identificatore non era volontaria.
    Quindi è lecito, giusto?
    Si era proprio ciò che volevo sapere, grazie.
Devi accedere o registrarti per scrivere nel forum
3 risposte