Originariamente inviato da rocco.g
ciao,
ho una curiosità... come faccio a far inserire dall'utente una stringa di una lunghezza arbitraria ? cioè con un numero non specificato di caratteri... i vettori sono una entità statica in quanto bisogna già dall'inizio specificarne la "capienza", quindi come si può fare ? ho pensato di usare una malloc ma non so come...
riprendendo ciò che ha suggerito kNemo:
codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char *s;
    unsigned long i=0;
               
    printf("inserisci una stringa:\n");
    
    if( ! (s = (char*) malloc(sizeof(char))) )
    {
        printf("\aimpossibile allocare la memoria\n");    
        return -1;
    }    
    
    while(1)
    {
        //s[i]=getchar();
        //if(s[i]=='\n') break;
        s[i]='A';
        if(i==999999) break;
        i++;
        if( ! (s = (char*) realloc(s, i+1)) )
        {
            printf("\aimpossibile allocare altra memoria\n");
            return -1;
        }
    }
    s[i]='\0';
    
    printf("la stringa inserita e\':\n%s\nsono stati allocati %d byte\n", s, ++i);
        
    free(s);
    
    system("pause");
    return 0;
}