Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [C] curiosita' strlen

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348

    [C] curiosita' strlen

    Ciao a tutti

    Ho un dubbio sulla funzione strlen.

    ho un puntatore:

    char * parola;
    parola=malloc(11500);
    memset(parola , 'c' , 11500);
    strlen(parola);


    Il fatto e' questo fino a stringhe di 11499 caratteri strlen mi riporta il valore esatto poi da valori piu' alti mi da numeri errati!

    Cosa puo' essere non penso che il limite massimo di una stringa sia 11500.

    grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    405
    eh ma scusa se ne allochi 11500 è ovvio che per stringhe più lunghe restituisca valori sballati...

  3. #3
    Il fatto è che la 'povera' strlen() si aspetta in input una stringa null-terminated (tipica del C)
    pertantto in ultima posizione devi mettere un valore 0 (parola[11499]=0)
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348
    SI cavoli avevi(ovviamente) ragione dovevo inserire il terminatore di stringa!


    grazie 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.