Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568

    [C] Problemi con Malloc

    Ciao
    Raga ho un piccolo problema ad apprendere l'uso di Malloc.
    C'è questo esercizio che mi chiede di leggere due stringhe e di unirle restituendo un puntatore a questa nuova stringa. Si usi Malloc.
    Ci ho provato ma niente non ci riesco ottengo risultati con caratteri fuori da ogni immaginazione :gren:
    Sapete aiutarmi
    Grazie
    Ciao

  2. #2
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    please

  3. #3
    ...Terrible warlords, good warlords, and an english song

  4. #4
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    grazie lo guardo con calma ma da quello che ho potuto leggere fin ora non viene usato malloc

  5. #5
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Non avete niente con malloc?

  6. #6
    Non eri tu quello che parlava come un saggio, adorava tanto i puntatori e ne insegnava l`uso a dei poveri newbies?

  7. #7
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Mi confondi con qualkun altro io ho sempre odiato i puntatori quando non avevo un libro sul quale imparare il C.
    Non mi sono mai fatto il maestro perchè sono il primo a dovere imparare dagli altri. Comunque se cerchi di farmi adirare non ci riuscirai capito
    Se mi vuoi aiutare accettero molto volentieri il tuo aiuto.
    Scusa Jhonny ho guardato meglio e ho trovato ciò che mi serviva avevi ragione c'era malloc.
    Ho un altro problema però non riescoa inserire uno spazio fra le due stringhe. Ho provato in tanti modi ma non ci sono riuscito. Vi posto il listato. Come posso fare?
    Grazie


    #include <stdio.h>
    #include <string.h>

    int main(){
    char str1[20];
    char str2[20];
    char *ptr;
    char a;
    int l;
    printf("\nInserisci due stringhe: \n");
    scanf("%s",str1);
    scanf("%s",str2);
    l=strlen(str1)+strlen(str2)+1;
    ptr=(char*)malloc(l*sizeof(char));
    strncpy(ptr,str1,strlen(str1));
    strncpy(ptr+strlen(str1)+1,str2,strlen(str2));
    ptr[strlen(str1)+strlen(str2)+1]='\0';
    printf("%s\n",ptr);
    system("pause");
    }

  8. #8
    Così dovrebbe funzionare

    #include <stdio.h>
    #include <string.h>

    int main()
    {
    char str1[20];
    char str2[20];
    char *ptr,*b=" ";
    char a;
    int l;

    printf("\nInserisci due stringhe: \n");
    scanf("%s",str1);
    scanf("%s",str2);
    l=strlen(str1)+strlen(str2)+1;
    ptr=(char*)malloc(l*sizeof(char));
    strncpy(ptr,str1,strlen(str1));

    strncpy(ptr+strlen(str1),b,strlen(b));

    strncpy(ptr+strlen(str1)+strlen(b),str2,strlen(str 2));

    ptr[strlen(str1)+strlen(str2)+strlen(b)]='\0';
    printf("%s\n",ptr);
    }


    Ho cercato di continuare con la tua logica, però se non ti sei accorto prima c'era un errore, ti stampava solo 1 delle 2 stringhe che inserivi!

  9. #9
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    davvero a me le stampava entrambe. Tu che compilatore usi.
    Comunque grazie ora provo.

  10. #10
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Avevi ragione ne stampava solo una. Comunque io ho l'eseguibile che me ne stampava due con al centro un carattere qualsiasi quindi forse quando ho chiuso mi sono dimenticato di salvare gli ultimi salvataggi che avevo fatto perchè guardando meglio il sorgente non era così l'ultimo che avevo creato.
    Ciao

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.