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

    [C] Allocazione dinamica e puntatori

    Ciao.
    Come potrei risolvere il seguente programma:
    Si ha un puntatore a n caratteri. Bisogna far ritornare, mediante una funzione char*, un puntatore ad un'area, allocata dentro la funzione, contenente tutti i caratteri puntati da p tranne i caratteri che sono cifre decimali.

    Ho già qualche idea, ma vorrei raccoglierne altre.

    Grazie

  2. #2
    bisogna usare un puntatore a puntatore...e allocarlo con gli n elementi (che sono i caratteri di una stringa)

    è giusto così:
    char* area(char* s) {
    char* b;
    b=(char*)calloc(strlen(s)+1,sizeof(char));
    ....
    ...
    }

  3. #3

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Penso che un puntatore a puntatore non sia utile ...

    Provo a darti un'altra soluzione oltre a quella che hai gia' trovato ...

    codice:
    char* area(char* p1)
    { 
      int chs, vchs;
      for(chs=vchs=0; *(p1+chs); chs++)
      if(*(p1+chs)<'0' || *(p1+chs)>'9')
        vchs++;
    
      if(vchs==0)
        return((char *)NULL);
    
      char* p2 = new char[vchs+1]; 
    	
      return(p2);
    }

  5. #5
    Grazie del suggerimento, ma potresti spiegarmi cosa significa: new char?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' l'operatore di allocazione dinamica del C++ ...

    In realta' tu avevi chiesto per il C ... basta scrivere

    char* p2 = (char*)calloc(vchs+1,sizeof(char));

    oppure

    char* p2 = (char*)malloc((vchs+1)*sizeof(char));

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.