Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [c] stampa buffer

    Ciao a tutti ho un problema abbastanza stupido....

    ho un buffer di interi e voglio stamparlo intero x intero....ebbene....come si fa? considerando che ho solo un puntatori all'inizio del buffer?

    avevo pensato a un ciclo for del genere:
    codice:
    for(i=0;i<size;i++)
    {
    
      printf("%d -> %d\n", i,*(buffer+i));
    
    }
    ma mi da numeri sballati completamente....


    ho provato anche con & e affini, ma nn ci salto fuori...

    thanks

  2. #2
    Dopo ulteriori prove posso affermare che:

    se metto *(puntatore+i), mi da errore, se metto (puntatore +i ) mi da (come deve) il valore del puntatore...


    nessuno?

  3. #3
    A me questo codice compila e funziona perfettamente :master:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define SIZE 10
    
    int main ()
    {
        int i;
        int array[] = {5,33,445,43,78,21,9,5,23,67};
        int* buffer = array;
      
        for(i = 0 ; i < SIZE;  i++)
        {
               printf("%d -> %d\n", i,*(buffer+i));
        }
        getchar();
        fflush(stdin);
        return 0;
    }
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    uhmmm riprovo.....forse ho capito il problema, il mio era un void* puntatore....



  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora non avrebbe neanche dovuto compilare ... con un puntatore void l'aritmetica dei puntatori non ha piu' senso ...

    Fai vedere il codice che ti dava il problema ..

  6. #6
    Come dicevo due post fa mi dava errore

    Cmq ho risolto così:

    codice:
    char *ptr;
    ptr = (char *)buf;
    
    for(i=0 ; i<size ; i++){
       printf("%d\n", ptr[i]);
    }

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da shmk
    Come dicevo due post fa mi dava errore
    E per questo t'avevo detto di mostrare il codice ...

    Originariamente inviato da shmk
    Cmq ho risolto così:

    codice:
    char *ptr;
    ptr = (char *)buf;
    
    for(i=0 ; i<size ; i++){
       printf("%d\n", ptr[i]);
    }
    Ovvero, in maniera equivalente

    codice:
    for(i=0 ; i<size; i++)
      printf("%d\n", *(((char *)buf)+i));

  8. #8
    Io avevo capito che il buffer era di interi...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Giusto ... ma ho solo fornito codice equivalente a quello che ha detto che funziona ...

    In realta' se non si vede come e' stato allocato buf, non si puo' capire nulla ...

  10. #10
    Originariamente inviato da oregon
    Giusto ... ma ho solo fornito codice equivalente a quello che ha detto che funziona ...

    In realta' se non si vede come e' stato allocato buf, non si puo' capire nulla ...
    No infatti la "critica" se la vogliamo chiamare così perchè è più un'osservazione, era riferita a lui.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.