Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [c]allocazione dinamica stringhe

    c'è un modo per creare un array di char dinamicamente diverso da quello che ho implementato? Ovvero senza richiedere precedentemente il numero di elementi dell'array?

    ......
    char * stringa1;
    int n;

    printf("inserire il numero di caratteri della stringa");
    scanf("%d", &n);
    stringa1= (char *)malloc(n, sizeof(char));
    printf("inserire la stringa");
    scanf("%s", stringa1);
    .........

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Intanto la malloc accetta un solo parametro ... nel tuo caso dovrebbe essere

    stringa1= (char *)malloc(n * sizeof(char));

    altrimenti non dovrebbe neanche compilare ...

    Per il resto, non ho compreso come intendi allocare un array senza avere il numero di char da allocare ...

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    La funzione che alloca memoria e riceve 2 parametri è calloc, che riceve il numero di elementi da allocare e la dimensione di ognuno di essi.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    scusatemi avevo trascritto male il codice:

    ......
    char * stringa1;
    int n;

    printf("inserire il numero di caratteri della stringa");
    scanf("%d", &n);
    stringa1= (char *)malloc(n * sizeof(char));
    printf("inserire la stringa");
    scanf("%s", stringa1);
    .........


    Volevo sapere se non conoscendo a priori la lunghezza della stringa da inserire c'è un modo per allocare dinamicamente memoria oppure un modo per incrementarla per ogni carattere che si inserisce?
    grazie

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Se non sai quanta memoria allocare, non la puoi allocare ...

    Per cambiare la quantita' allocata, usa la funzione realloc ...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.