[C] Array di caratteri

di il
38 risposte

38 Risposte - Pagina 3

  • Re: [C] Array di caratteri

    Oltre a definire una costante molto grande e che occupi molta memoria, come posso fare allora per evitare questi errori?
    Sbagli: 20 è il numero massimo di caratteri inseribili dall'utente.
    Se aggiungi il terminatore diventano 21.
    Se aggiungi i 3 caratteri da copiare in fondo diventano 24.
    Se il vettore avrà dimensione inferiore a 24 sarà un errore. Se il vettore avrà dimensione DIVERSA (in questo contesto) sarà un errore!
    Questo nulla ha a che vedere con l'allocazione dinamica.
    E non ho capito perché se ha dimensione inferiore allora da errore...
  • Re: [C] Array di caratteri

    Ma se prepari una damigiana da 20 litri per metterci 24 litri di olio, capisci perché è un errore o no?
  • Re: [C] Array di caratteri

    oregon ha scritto:


    Ma se prepari una damigiana da 20 litri per metterci 24 litri di olio, capisci perché è un errore o no?
    Sì lo capisco, ma nel mio manuale ci sono esempi del genere...

    Anche qui viene commesso un errore?
    Il suggerimento è questo
    ma come ho detto non c'è nel programma l'allocazione dinamica
  • Re: [C] Array di caratteri

    Quello che hai mostrato cosa c'entra? A me non sembra lo stesso problema, anzi.

    In quel caso viene preparata una damigiana da 1000 litri con la possibilità che vengano usati al massimo n litri di olio in cui n è sempre minore di 1000.

    Nel tuo caso, devi prevedere 20+1+3 litri ma prepari la damigiana da 20.

    Cosa c'è ancora da capire?
  • Re: [C] Array di caratteri

    1) non prendere quello che leggi per oro colato, neanche quello che scrivo io! Qua è tutto pieno di libracci...
    2) prima di comprare una damigiana si fa i conti di quanti litri dovrà contenere... il conto lo ho già fatto io per te. e anche Oregon.
    N
  • Re: [C] Array di caratteri

    In qualche intervento fa avevo previsto già una damigiana più grande

    #include <stdio.h>
    #define MAX_C 100		// Il masssimo numero di caratteri modificabile in base alle esigenze.
    
    poi non so come mi è uscito un 20 quando ho riscritto il codice, ma io intendevo scrivere 200!

    Poi mi sono onestamente confuso con questo intervento
    Sbagli: 20 è il numero massimo di caratteri inseribili dall'utente.
    Se aggiungi il terminatore diventano 21.
    Se aggiungi i 3 caratteri da copiare in fondo diventano 24.
    Se il vettore avrà dimensione inferiore a 24 sarà un errore. Se il vettore avrà dimensione DIVERSA (in questo contesto) sarà un errore!
    perché nella mia testa c'era un 200 e non capivo questo '20' da dove fosse saltato fuori...

    E' stato tutto un malinteso!
  • Re: [C] Array di caratteri

    Ok ... comunque adesso hai risolto? Perché il thread è diventato lungo e difficile da seguire ...

    Probabilmente, per altri problemi - anche su questo codice - faresti bene a creare un nuovo thread ...
  • Re: [C] Array di caratteri

    oregon ha scritto:


    Ok ... comunque adesso hai risolto? Perché il thread è diventato lungo e difficile da seguire ...

    Probabilmente, per altri problemi - anche su questo codice - faresti bene a creare un nuovo thread ...
    Sì penso di aver risolto.

    Chiedo scusa per l'impiccio, se ho qualche altro dubbio creerò una nuova discussione

    Grazie
  • Re: [C] Array di caratteri

    leo95nf ha scritto:


    E' stato tutto un malinteso!
    Temo di si, nel senso che non hai capito! Mi spiego meglio:
    
    #define MASSIMO_NUM_CHAR_INSERIBILI_DA_USER 20
    
    #define MASSIMO_NUM_CHAR_STRINGA (MASSIMO_NUM_CHAR_INSERIBILI_DA_USER +3 +1)
    
Devi accedere o registrarti per scrivere nel forum
38 risposte