PDA

Visualizza la versione completa : [C] puntatori


faibo
27-01-2004, 23:05
da molto ke nn metto le mani sul C e mi sa ke i puntatori li ho totalmente dimenticati xk mi fa errore....qlk1 mi pu dare una mano?

Il programma dovrebbe simulare 1a calcolatrice,ma x adesso voglio sapere quanti operandi c sn in una funzione.

questo il codice, mi sapreste dire dove sbaglio???


#include <stdio.h>
#include <stdlib.h>


int calcolatrice(funzione);
int trova(char funzione,int *vettore[],char operando);

main(){

char funzione[]="2+5+7";
calcolatrica(funzione);
printf("%s",funzione);
}


int calcolatrice(funzione){

int *per, *diviso, *piu, *meno, n_per, n_div, n_piu, n_meno, i;

n_per=trova(funzione,per,'+');
n_div=trova(funzione,diviso,'/');
n_piu=trova(funzione,piu,'+');
n_meno=trova(funzione,meno,'-');

for(i=0;1<n_per;i++){
printf("\n%d\n",per[i]);
}
for(i=0;1<n_div;i++){
printf("\n%d\n",diviso[i]);
}
for(i=0;1<n_piu;i++){
printf("\n%d\n",piu[i]);
}
for(i=0;1<n_meno;i++){
printf("\n%d\n",meno[i]);
}

}

int trova(char funzione,int *vettore[],char operando){

int grandezza=0, i;

for(i=0;i<strlen(funzione);i++){
if (funzione[i] == operando){
grandezza++;
realloc(vettore, grandezza);
vettore[grandezza-1]=i;
}
}
return grandezza;

}

infinitejustice
28-01-2004, 00:43
Originariamente inviato da faibo
int *per, *diviso, *piu, *meno, n_per, n_div, n_piu, n_meno, i;

n_per=trova(funzione,per,'+');
n_div=trova(funzione,diviso,'/');
n_piu=trova(funzione,piu,'+');
n_meno=trova(funzione,meno,'-');


ma qui non passi delle aree di memoria non allocate?

Sergio Pedone
28-01-2004, 01:24
Originariamente inviato da faibo

int calcolatrice(funzione);

non dovresti indicare il tipo del parametro ? (char[])


calcolatrica(funzione);

Non avevi chiamato il metodo calcolatrice(...) ?

:ciauz:

faibo
28-01-2004, 10:16
grazie, adesso il prog gira, x c' come al solito un problema...nn ho capito come mai 'grandezza' mi diventa un numero colossale.

Cosa ho risbagliato??? :master:

Loading