Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: osoitin argumenttina funktiolle

Tampio [09.12.2006 19:29:18]

#

#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.

Metabolix [09.12.2006 19:33:01]

#

Eihän se ole int* vaan float*. Muuta siis funktiokin käyttämään float*:ta int*:n sijaan.

Tampio [09.12.2006 20:47:21]

#

Noniin siinähän se. Olin pikkuaivoillani ymmärtänyt väärin tuon systeemin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta