PDA

Visualizza la versione completa : [C] problema di puntatori ?


shinichi
18-12-2008, 21:30
Sto scrivendo una funzione alla quale devono essere passati come argomenti una struttura ed un intero e deve restituire una struttura

l'intera struttura rappresenta un numero binario

la funzione fa si che la struttura ritornata differisca dalla prima solo per un dato, un puntatore a char che contiene una stringa rappresentante un numero binario, il modulo della struttura per esser precisi

l'effetto č quello di ridimensionare il modulo di un numero binario alla grandezza passata come argomento

il compilatore dice
no match for 'operator[]' in 'binary[initsize]'
no match for 'operator[]' in 'binario[size]'



bin resize(bin binary,int size)
{
bin binario;
int initsize;
initsize=modsize(binary);
binario.chk=binary.chk;
binario.sys=binary.sys;
binario.mod=(char*)calloc(size+1,sizeof(char));
binario.mod[size]='\0';
--size;
for(--initsize;initsize>0 || initsize==0;initsize--)
{
binario.mod[size]=binary[initsize];
--size;
}
for(size;size>0 || size==0;size--)
binario[size]='0';
return binario;
}


la modsize restituisce la lunghezza del modulo memorizzato nella struttura come puntatore a char

dove ho sbagliato?

oregon
18-12-2008, 21:40
Non e' che questi in rosso



bin resize(bin binary,int size)
{
bin binario;
int initsize;
initsize=modsize(binary);
binario.chk=binary.chk;
binario.sys=binary.sys;
binario.mod=(char*)calloc(size+1,sizeof(char));
binario.mod[size]='\0';
--size;
for(--initsize;initsize>0 || initsize==0;initsize--)
{
binario.mod[size]=binary[initsize];
--size;
}
for(size;size>0 || size==0;size--)
binario[size]='0';
return binario;
}


dovevano essere cosi' ?



bin resize(bin binary,int size)
{
bin binario;
int initsize;
initsize=modsize(binary);
binario.chk=binary.chk;
binario.sys=binary.sys;
binario.mod=(char*)calloc(size+1,sizeof(char));
binario.mod[size]='\0';
--size;
for(--initsize;initsize>0 || initsize==0;initsize--)
{
binario.mod[size]=binary.mod[initsize];
--size;
}
for(size;size>0 || size==0;size--)
binario.mod[size]='0';
return binario;
}

shinichi
18-12-2008, 21:45
ops sto proprio messo male :malol:

tenchių

Loading