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

    [c] hex char to hex char *

    ciao a tutti

    ho un problema: devo convertire un carattare esadecimale in un char *.
    Qualcuno di voi ha idea di come fare? In windows ci sono riuscito correttamente. in linux ho qualche problema.

    ovviamente in c.

    CHi mi sa aiutare?

    grazie
    yuyu

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Chiarisci un po' meglio il problema ...

    E quali sono le differenze tra Linux e Windows che ti creano dubbi ...

  3. #3
    in pratica ho un carattere esadecimale contenuto in una variabile char. devo metterlo un un char *.


    sono un pirla. ho risolto così


    char *buffer = new char[2];
    int x=(int)car;
    itoa((int)car, buffer, 16);

    dove car è un carattare.

    In windows non avevo fatto il new char[2]; però andava lo stesso. portato su linux invece dava sempre errore. l'ho messo e funziona. non capisco il perchè. qualcuno me lo sa spiegare? :master:

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Anche in Windows lo spazio deve essere allocato.

    Non hai avuto problemi perche', per caso, lo spazio utilizzato dalla itoa era allocato al processo. Ma avresti comunque "sporcato" tale spazio con risultati non facilmente predicibili.

    Inoltre ti consiglio di

    1) allocare 3 caratteri perche' una stringa termina con lo zero binario che fa parte della stringa stessa;

    2) elimina la seconda linea (dato che non usi x)

    3) non usare la itoa perche' e' "insicura" ... usa la versione _itoa_s o la sprintf_s

  5. #5
    uhm. interessante quello che dici. io programmo da pochissimo in c/c++ e non ho mai usato una new, se non per istanziare una classe. :master: . devo leggermi bene qualche manualone

    terrò a mente il tuo consiglio.

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.