#include <stdio.h>
float summaa(float a, float b, int *);
void main(void) {
float luku1, luku2, tulos;
printf("Anna luku 1 : ");
scanf("%f",&luku1);
printf("Anna luku 2: ");
scanf("%f",&luku2);
summaa(luku1, luku2, &tulos);
printf("Lukujen summa on %f\n",tulos);
}
float summaa(float a, float b, int *o) {
*o = a+b;
}Eli tuon funktion pitäisi muuttaa muuttujan "tulos" arvoa, mutta kun koitan kääntää sitä gcc:llä niin se herjaa warning: passing argument 3 of ‘summaa’ from incompatible pointer type
kääntää tuon kyllä mutta ohjelma antaa lukujen summaksi 0. Sanokaas nyt sitten missä on vika.
Eihän se ole int* vaan float*. Muuta siis funktiokin käyttämään float*:ta int*:n sijaan.
Noniin siinähän se. Olin pikkuaivoillani ymmärtänyt väärin tuon systeemin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.