Originariamente inviato da oregon
1) Ma come e' combinato il main? Hai mai compilato questo codice?
OOpps sistemo il tutto...ho fatto copia e incolla delle parti interessate ed ovviamente ho pasticciato un pò...

2) Cosa dovrebbe fare la bitcount?
Contare di quanti bits è composto l'oggetto che passo

2) E sei sicuro che faccia quello che credi?
Penso di si, l'ho presa dal Kernighan & Ritchie

3) Passi sempre A alle funzioni (A e' un puntatore) ma le funzioni NON accettano un puntatore ...
Ok, ma facendo così ottengo un risultato pur con warning nella compilazione, passando *A invece non mi da warning ma non ottengo la scrittura dei bits in out..


Codice PHP:
#include <stdlib.h>
#include <stdio.h>

// funzione per stampare i bits di un intero
  
void printbits(unsigned x){
    if (
x==0printf("0");
    else 
printbits(x>>1);
      
printf("%d",x&1);
  }

/* bitcount: count 1 bits in x */
int bitcount(unsigned x)
{
    
int b;
    for (
0!= 0>>= 1)
        
b++;
    return 
b;
}

// Funzione per settare ad 1 tutti i bit dell'intero passato come argomento
int setbitOn(int x)
{
for (; 
!= 0>>= 1)
    
1;
    return 
x;
}

main () {
  
int  *A;
  
= (int *) malloc(20);
  
printf("Garbage Contents: %d %d\n"Asizeof(A) );
  
printf("Bits di A: ");
  
printbits(A);            //stampa 0
  
printf("\n");
  
printf("Numero di bits in A: %d\n",bitcount(A));   //stampa 28!!
  
printf("Bits di A dopo setbitOn(): ");
  
printbits(setbitOn(A));
  
printf("\n");
  
printf("Garbage Contents(2): %d %d\n"Asizeof(A) );
  
printf("\n");
  
free(A);