Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Linguaggio C

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

    Linguaggio C

    Salve a tutti, volevo sapere se qualcuno conosce un modo in C, per
    calcolare il numero di elementi di un vettore di interi (cioè per scorrerlo tutto), avendo a
    disposizione il solo puntatore al vettore!!! AIUTOOOOOOO...

  2. #2
    Spero di non dire una ca$$ata
    ma se 1 intero sono 2 Byte
    e tu hai il puntatore al vettore

    printf("NUMERO ELEMENTI %d",sizeof(Puntatore)/2);

    non mi picchiate se ho sbagliato ^^;

  3. #3
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    credo sia giusto

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    9

    Ho provato

    Ho provato la riga di codice che mi hai proposto, ma purtroppo non funziona...

  5. #5
    a questo punto mi pongo una domanda, perchè su AIX il tipo di dato intero è definito di 4 Byte ?? ^^;

  6. #6
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    I sistemi operativi a 32bit trattano i tipi interi con 4byte

  7. #7
    Ma come è definito il tuo puntatore e soprattutto che tipo di errore ti dà ??

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    9
    Non mi da nessun errore, però il numero degli elementi è sbagliato(ad es. il vettore che gli passo ha 51 elementi, mentre, con quella riga di codice mi stampa 1, forse perchè la sizeof la fa sul solo puntatore , cioè il primo elemento del vettore e non sull'intero vettore). Comunque ho un prototipo come questo: char* intToChar(int *vett);
    Ed è su vett che ho bisogno di conoscere la grandezza per scorrerlo tutto.

    Grazie

  9. #9
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    Beh se lo hai indirizzato così

    ptr=&array

    non otterrai mai nulla perchè array è un puntatore al 1° elemento dell'array che è uguale a 2byte e quindi due diviso due uguale 1

  10. #10
    Utente di HTML.it L'avatar di AR64S-H
    Registrato dal
    Jun 2002
    Messaggi
    568
    non hai bisogno di puntantori. Fai così

    #include <stdio.h>

    int array[4];

    int main()
    {
    printf("L'arrray ha %d elementi",sizeof(array)/2);
    getchar();
    return 0;
    }

    in questo modo array non punta al primo elemento dell'array ma con sizeof ottieni l'intera dimensione dell'array
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.