Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102

    [C]Come faccio a creare una stringa dinamica con malloc ?

    Salve a tutti, mi sapreste dire come creare una stringa dinamica con malloc ?

  2. #2
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char* stringa;
        int n=25;
        
        stringa=(char*)malloc(sizeof(char)*n);
        
        scanf("%s", stringa);
        printf("%s", stringa);
        
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466

    Re: [C]Come faccio a creare una stringa dinamica con malloc ?

    Originariamente inviato da Ghemon-a
    Salve a tutti, mi sapreste dire come creare una stringa dinamica con malloc ?
    Usa la funzione "cerca" del forum.stringa dinamica

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da _Alfabetagamma_
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char* stringa;
        int n=25;
        
        stringa=(char*)malloc(sizeof(char)*n);
        
        scanf("%s", stringa);
        printf("%s", stringa);
        
    }
    In questo modo ho 25 byte a disposizione ?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    La prossima volta cercherò meglio nel forum
    Comunque, ho trovato questo programma, ma è per le stringhe. Come faccio a utilizzarlo anche per un vettore di interi ?
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    
    #define STR_BLOCK 10
    
    char *readLine(void)
    {
        char * string  = malloc ((STR_BLOCK + 1) * sizeof (char));
        size_t length = 0;
                    
        do {
            if (!length || !(length % STR_BLOCK))
                string = realloc(string, (length + STR_BLOCK + 1) * sizeof (char));
                                                                
            string[length] = (char) getchar();
        } while (string[++length -1] != '\n');
                                                                             
        string[length - 1] = '\0';
        string = realloc(string, length * sizeof (char));
                                               
        return string;
    }
    
    int main(void) {
      char * str;
    
      puts("Inserisci una linea:");
      str = readLine();
    
      printf("Hai inserito: \"%s\"\n", str);
    
      free(str);
    
      return 0;
    }

  6. #6
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int* vettore;
        int n=5,i;
        
        vettore=(int*)malloc(sizeof(int)*n);
        
        for(i=0; i<n; i++)
            scanf("%i", (vettore+i));
        
        for(i=0; i<n; i++)
            printf("%i\n", *(vettore+i));
            
        system("pause");
        
    }
    Comunque ora se ti servisse un vettore di float prova a pensarci e a testare. Se vieni qui e ti diamo le soluzioni già fatte a te che serve? Nella vita prima di chiedere si passa delle ore a TESTARE, non a CERCARE. Era un programma che necessitava di due minuti e di 5 righe da modificare rispetto al mio precedente. Fa piacere aiutare gli altri però poi uno si chiede se realmente fatto così ti serva a qualcosa. A te le riflessioni e il codice, con il consiglio di provare a farlo con i float, così da capire il MECCANISMO, non rubare del codice "pappa-pronta".

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Originariamente inviato da _Alfabetagamma_
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int* vettore;
        int n=5,i;
        
        vettore=(int*)malloc(sizeof(int)*n);
        
        for(i=0; i<n; i++)
            scanf("%i", (vettore+i));
        
        for(i=0; i<n; i++)
            printf("%i\n", *(vettore+i));
            
        system("pause");
        
    }
    Comunque ora se ti servisse un vettore di float prova a pensarci e a testare. Se vieni qui e ti diamo le soluzioni già fatte a te che serve? Nella vita prima di chiedere si passa delle ore a TESTARE, non a CERCARE. Era un programma che necessitava di due minuti e di 5 righe da modificare rispetto al mio precedente. Fa piacere aiutare gli altri però poi uno si chiede se realmente fatto così ti serva a qualcosa. A te le riflessioni e il codice, con il consiglio di provare a farlo con i float, così da capire il MECCANISMO, non rubare del codice "pappa-pronta".

    Ciao
    Hai perfettamente ragione, infatti è quello il mio obbiettivo. Gli algoritmi che mi hai scritto sono riuscito a farli anche io, ma il problema è che non riesco a sviluppare un algoritmo che non abbia bisogno di un numero n per allocare la memoria, come ad esempio quello che ho postato io, infatti quel programma ti permette di allocare memoria mano mano che viene inserito un nuovo carattere, Vorrei usare lo stesso metodo ma con un vettore di caratteri

  8. #8
    Originariamente inviato da Ghemon-a
    Hai perfettamente ragione, infatti è quello il mio obbiettivo. Gli algoritmi che mi hai scritto sono riuscito a farli anche io, ma il problema è che non riesco a sviluppare un algoritmo che non abbia bisogno di un numero n per allocare la memoria, come ad esempio quello che ho postato io, infatti quel programma ti permette di allocare memoria mano mano che viene inserito un nuovo carattere, Vorrei usare lo stesso metodo ma con un vettore di caratteri
    Prova a studiarci sopra, non dovrebbe essere troppo complicato, ci sono due cose su cui devi riflettere:

    1) la lettura di una stringa va avanti fino a che non viene il letto il carattere '\n' (INVIO):
    l'inserimento di interi prevede d'inserire ogni volta un numero e di premere INVIO, come risolvere?

    2) occorre decidere un valore per terminare l'inserimento (a tua scelta, 0, 12, 345, ..)

    Ma si può fare dai
    Salute a voi, da Laikius!

    --> Faber est suae quisque fortunae <--

  9. #9
    Originariamente inviato da Ghemon-a
    Hai perfettamente ragione, infatti è quello il mio obbiettivo. Gli algoritmi che mi hai scritto sono riuscito a farli anche io, ma il problema è che non riesco a sviluppare un algoritmo che non abbia bisogno di un numero n per allocare la memoria, come ad esempio quello che ho postato io, infatti quel programma ti permette di allocare memoria mano mano che viene inserito un nuovo carattere, Vorrei usare lo stesso metodo ma con un vettore di caratteri
    Questo è un altro paio di maniche!

    I suggerimenti ricevuti da Laikius dovrebbero essere un punto di partenza

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    102
    Certamente
    Vi farò sapere appena trovo una soluzione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.