Scherzetti informartici [Programmatori C/C++ a me!] Scherzetti informartici [Programmatori C/C++ a me!] - Pagina 4

Pagina 4 di 5 PrimaPrima ... 2345 UltimaUltima
Risultati da 61 a 80 di 89

Discussione: Scherzetti informartici [Programmatori C/C++ a me!]

  1. #61
    Dott. Ing. Lup. Mann. L'avatar di LordOrion
    Data Registrazione
    Jan 2016
    Località
    Ducato di Massa E Carrara (caput mundi)
    Messaggi
    21.011
    Gamer IDs

    Gamertag: SSerponi76 PSN ID: SSerponi76 Steam ID: SSerponi76

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Trovato un altro non meno sottile, (versione semplificata ):

    Codice:
    char * strAllocator( size_t len, char *pInitValue = NULL )
    {
         char *pNewStr = new char[len]
         if ( NULL != pInitValue )
             strcpy( *pNewStr, "null" );   // Enjoy this ;-)
     
         return pNewStr;
    }
    
    ....
    
    const char* pOriginalString = "Loren ipsum";
    
    void main( void )
    {
          char* pStringClone = stringAllocator( strlen(pOriginalString), pOriginalString );
          if ( NULL != pStringClone )
              printf( "\nClone string = %s [%p] ", pOriginalString, pOriginalString );
    }
    Ultima modifica di LordOrion; 28-08-17 alle 16:19

    +
    22.437 Messaggi dillà...
    Il mio blog: Notti a (Video)Giocare <- (100% ADS FREE!!)
    CPU: i7-11700K@5GHz|GPU: RTX-4070 Super Trinity |RAM: 64GB DDR4@3200MHz|SSD: 970EVO Plus + 2x 980 Pro|HOTAS Warthog|TrackIR 5|

  2. #62
    北斗のバド・スペンサー L'avatar di Lo Zio
    Data Registrazione
    Jan 2016
    Messaggi
    77.534

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    qua il nerd-o-meter ha sfondato over9000, eh

  3. #63
    Senior Member L'avatar di gnappinox1
    Data Registrazione
    Jan 2016
    Messaggi
    4.838

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Se ho capito bene, invece di allocare una stringa con il valore passato, crea una stringa contenente "null"
    Non mi sembra grave a meno che non ci sia un trick con in puntatori che al momento non mi salta all'occhio

  4. #64
    Filastrocchiere di STOCAZ L'avatar di Skywolf
    Data Registrazione
    Jan 2016
    Messaggi
    7.387

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da gnappinox1 Visualizza Messaggio
    Se ho capito bene, invece di allocare una stringa con il valore passato, crea una stringa contenente "null"
    Non mi sembra grave a meno che non ci sia un trick con in puntatori che al momento non mi salta all'occhio
    essendo un "allocator", in realtà non dovrebbe neanche copiare alcunchè, dovrebbe restituire un puntatore a una stringa di lunghezza tot.
    se no dovrebbe chiamarsi qualcosa come "strcpy" che esiste già

    piuttosto non capisco l'inizializzazione a NULL di *pInitValue ed il successivo if

  5. #65
    Dott. Ing. Lup. Mann. L'avatar di LordOrion
    Data Registrazione
    Jan 2016
    Località
    Ducato di Massa E Carrara (caput mundi)
    Messaggi
    21.011
    Gamer IDs

    Gamertag: SSerponi76 PSN ID: SSerponi76 Steam ID: SSerponi76

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da gnappinox1 Visualizza Messaggio
    Se ho capito bene, invece di allocare una stringa con il valore passato, crea una stringa contenente "null"
    Non mi sembra grave a meno che non ci sia un trick con in puntatori che al momento non mi salta all'occhio
    La funzione dovrebbe allocare ed eventualmente inizializzare la stringa con quella passata come secondo argomento. Ia gabola e' che tu crei la string ainizializzata e questa in effetti passa il controllo di validita' nel main() poi pero' quando vai a stamparla sorpresa: viene fuori "null" come se il puntatore non fosse valido (nell'esempio sopra viene stampato sia come string a che come puntatore ma nel codice originale non era cosi')..

    Citazione Originariamente Scritto da Skywolf Visualizza Messaggio
    essendo un "allocator", in realtà non dovrebbe neanche copiare alcunchè, dovrebbe restituire un puntatore a una stringa di lunghezza tot.
    se no dovrebbe chiamarsi qualcosa come "strcpy" che esiste già
    tieni presente che e' un codice che ho scritto in 5 minuti per darvi una idea, non e' il codce reale dove ho trovato il problema.

    Citazione Originariamente Scritto da Skywolf Visualizza Messaggio
    piuttosto non capisco l'inizializzazione a NULL di *pInitValue ed il successivo if
    E' un valore di default: in C++ posso specificare un valore di default per gli argomenti di una funzione, in tal modo posso ometterli. In pratica cosi' facendo, se non devo inizializzare la stringa ma solo allocarla, posso chiamare strAllocator() passandogli solo la lunghezza:

    Codice:
    strAllocator( 20 ) // Equivale a strAllocator( 20, NULL ).
    l'if all'interno serve appunto a capire se oltre allocare devo anche inizializzare usando appunto strcpy().

    +
    22.437 Messaggi dillà...
    Il mio blog: Notti a (Video)Giocare <- (100% ADS FREE!!)
    CPU: i7-11700K@5GHz|GPU: RTX-4070 Super Trinity |RAM: 64GB DDR4@3200MHz|SSD: 970EVO Plus + 2x 980 Pro|HOTAS Warthog|TrackIR 5|

  6. #66
    Senior Member L'avatar di Aleph
    Data Registrazione
    Jan 2016
    Località
    Somewhere in Budapest
    Messaggi
    3.163

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Sono arrugginito con il C, ma se si usa printf, con un puntatore NULL, stampa proprio 'null'?

  7. #67
    koba44
    Guest

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da Aleph Visualizza Messaggio
    Sono arrugginito con il C, ma se si usa printf, con un puntatore NULL, stampa proprio 'null'?
    Ni. asd

    Cioè mi spiego [ometto i cast a const char*] .

    printf(NULL); fa bum
    printf("%s", NULL); dipende dallo standard ISO Cxx, se non erro

    Più xx si avvicina agli anni '70 e più è probabile faccia bum.

    O forse no. Boh.

  8. #68
    il CREATORE L'avatar di Mad_One
    Data Registrazione
    Jan 2016
    Messaggi
    1.219

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da LordOrion Visualizza Messaggio
    Fixed.
    E non e' un dettaglio
    si parla di booleani
    quando mi aspetto un bool in c testo per 1 e 0
    e se è una roba al di fuori vado di exit(-1) altroché

    che cazzo siamo in php che null == 0 == "" ?

  9. #69
    Senior Member
    Data Registrazione
    Jan 2016
    Messaggi
    2.272

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Non ho mai usato il c++ sul lavoro, che differenza fa scrivere NULL anziché 0?
    È solo una convenzione o il compilatore potrebbe dare risultati diversi?

  10. #70
    koba44
    Guest

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da TizN Visualizza Messaggio
    Non ho mai usato il c++ sul lavoro, che differenza fa scrivere NULL anziché 0?
    È solo una convenzione o il compilatore potrebbe dare risultati diversi?
    Le leggende dicono che NULL potrebbe essere diverso da 0 su qualche antiqua piattaforma pre-diluvio.

    Tipo 0x80000000 o roba così.

  11. #71
    Senior Member L'avatar di gnappinox1
    Data Registrazione
    Jan 2016
    Messaggi
    4.838

    Re: Scherzetti informartici [Programmatori C/C++ a me!]


    Ok, ma quindi con tutte queste belle sorprese nel codice, come cazzarola vi funzionano i programmi ????

  12. #72
    Dott. Ing. Lup. Mann. L'avatar di LordOrion
    Data Registrazione
    Jan 2016
    Località
    Ducato di Massa E Carrara (caput mundi)
    Messaggi
    21.011
    Gamer IDs

    Gamertag: SSerponi76 PSN ID: SSerponi76 Steam ID: SSerponi76

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da Mad_One Visualizza Messaggio
    si parla di booleani
    quando mi aspetto un bool in c testo per 1 e 0
    e se è una roba al di fuori vado di exit(-1) altroché

    che cazzo siamo in php che null == 0 == "" ?
    TI ricordo che in C (Ansi-C) il tipo bool non esiste. Il linguaggio considera "falso" il valore 0 e "vero" tutti i valori diversi da zero (inclusi i negativi). Sembra un dettaglio ma non lo e': La libreria standard definisce le macro TRUE e FALSE ma vano usate con attenzione, specie nel caso di confronti con TRUE.

    Citazione Originariamente Scritto da koba44 Visualizza Messaggio
    Ni. asd

    Cioè mi spiego [ometto i cast a const char*] .

    printf(NULL); fa bum
    printf("%s", NULL); dipende dallo standard ISO Cxx, se non erro

    Più xx si avvicina agli anni '70 e più è probabile faccia bum.

    O forse no. Boh.
    Dipende dalla libreria C/C++ che vai a linkare. La versioni "debug" moderne ti fanno il favore di stampare "null" o "null string" se fai una cosa tipo questa:

    Codice:
    char *string = NULL;
    printf ("La stringa vale: [%s]", string );
    Citazione Originariamente Scritto da TizN Visualizza Messaggio
    Non ho mai usato il c++ sul lavoro, che differenza fa scrivere NULL anziché 0?
    È solo una convenzione o il compilatore potrebbe dare risultati diversi?
    come TRUE e FALSE, NULL e' in genere una macro del compilatore:

    Codice:
    #define NULL 0               // in C (Ansi)
    #define NULL ((void *)0) // in C++ (x98 - x10)
    Quindi usare 0 o NULL non cambia nulla, eccetto che il codice e' piu' leggibile se usi NULL.
    Da C++ x11 in poi e' stata introdotta la keyword nullptr che e un vero e proprio valore di tipo nullptr_t.

    Citazione Originariamente Scritto da koba44 Visualizza Messaggio
    Le leggende dicono che NULL potrebbe essere diverso da 0 su qualche antiqua piattaforma pre-diluvio.

    Tipo 0x80000000 o roba così.
    vero, ma per fortuna quei sistemi oramai sono solo (brutti) ricordi lontani.

    Citazione Originariamente Scritto da gnappinox1 Visualizza Messaggio

    Ok, ma quindi con tutte queste belle sorprese nel codice, come cazzarola vi funzionano i programmi ????
    Infatti quel codice non funzionava
    Ultima modifica di LordOrion; 28-08-17 alle 22:05

    +
    22.437 Messaggi dillà...
    Il mio blog: Notti a (Video)Giocare <- (100% ADS FREE!!)
    CPU: i7-11700K@5GHz|GPU: RTX-4070 Super Trinity |RAM: 64GB DDR4@3200MHz|SSD: 970EVO Plus + 2x 980 Pro|HOTAS Warthog|TrackIR 5|

  13. #73
    Senior Member L'avatar di Aleph
    Data Registrazione
    Jan 2016
    Località
    Somewhere in Budapest
    Messaggi
    3.163

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Vabbo mi tengo stretto Java, che ok sarà il COBOL del 21esimo secolo ma figa, almeno non devo stare lì a controllare che valore ha NULL questa settimana

  14. #74
    Predicatore Google L'avatar di Mdk
    Data Registrazione
    Jan 2016
    Messaggi
    19.243

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da Aleph Visualizza Messaggio
    Vabbo mi tengo stretto Java, che ok sarà il COBOL del 21esimo secolo ma figa, almeno non devo stare lì a controllare che valore ha NULL questa settimana
    No, devi solo catchare i NullPointerExceptions ogni 2 righe e sei a posto

  15. #75
    Filastrocchiere di STOCAZ L'avatar di Skywolf
    Data Registrazione
    Jan 2016
    Messaggi
    7.387

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da Mdk Visualizza Messaggio
    No, devi solo catchare i NullPointerExceptions ogni 2 righe e sei a posto

  16. #76
    Senior Member L'avatar di squallwii
    Data Registrazione
    Jan 2016
    Messaggi
    11.804

    Re: Scherzetti informatici [Programmatori C/C++ a me!]



    Inviato dal mio p9 lite utilizzando Tapatalk

  17. #77
    #mainagioia L'avatar di von right
    Data Registrazione
    Jan 2016
    Località
    Luna City
    Messaggi
    18.645
    Gamer IDs

    Steam ID: pink81

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Ma c'è lavoro in c++ in italia?
    Un mio ex compagno di scuola ha trovato solo a milano qualcosa di degno
    Qui in veneto nada, solo java, cobol e roba web/mobile.
    Mr Pink, Guerriero da tastiera !!! Profilo su steam.

    Lista chiavi Steam

    Problemi con l'inutile svapo o altri? La soluzione è qui.

    Citazione Originariamente Scritto da Moloch Visualizza Messaggio
    ai grillini è più facile metterglielo in culo che in testa

  18. #78
    il CREATORE L'avatar di Mad_One
    Data Registrazione
    Jan 2016
    Messaggi
    1.219

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da LordOrion Visualizza Messaggio
    TI ricordo che in C (Ansi-C) il tipo bool non esiste. Il linguaggio considera "falso" il valore 0 e "vero" tutti i valori diversi da zero (inclusi i negativi). Sembra un dettaglio ma non lo e': La libreria standard definisce le macro TRUE e FALSE ma vano usate con attenzione, specie nel caso di confronti con TRUE.
    non esisterà nel linguaggio ma nella tua testa si spera di sì, così come la comprensione del testo

    ergo, se mi aspetto un booleano in C controllo 1 e 0.
    se c'è un valore a cazzo come 452, c'è un problema
    Ultima modifica di Mad_One; 29-08-17 alle 08:20

  19. #79
    koba44
    Guest

    Re: Scherzetti informatici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da Mdk Visualizza Messaggio
    No, devi solo catchare i NullPointerExceptions ogni 2 righe e sei a posto
    "Ma Java non ha i puntatori!!1!" (cit.)

  20. #80
    koba44
    Guest

    Re: Scherzetti informartici [Programmatori C/C++ a me!]

    Citazione Originariamente Scritto da gnappinox1 Visualizza Messaggio

    Ok, ma quindi con tutte queste belle sorprese nel codice, come cazzarola vi funzionano i programmi ????
    http://catb.org/jargon/html/magic-story.html

    Esempio pratico (suppongo, non letto):

    So I just had a "magic"/"more magic" moment today.
    http://forums.xkcd.com/viewtopic.php?t=53960

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Chi Siamo
Forum ufficiale della rivista
The Games Machine
Seguici su