Kód: Vybrat vše
1)napsat funkci alokuj_pole int velikost, jednorozměrné pole float, velikost je předána parametrem
pole bude vráceno jako:
a)návratová hodnota funkce
b)předáno jako parametr volaný odkazem

Kód: Vybrat vše
1)napsat funkci alokuj_pole int velikost, jednorozměrné pole float, velikost je předána parametrem
pole bude vráceno jako:
a)návratová hodnota funkce
b)předáno jako parametr volaný odkazem




V kroku A se vrátí pole tak jak je, zatímco v kroku B se pole zapíše do ukazatele, předáného funkci jako argument.Václav Sedlář píše:...

Ti tam chybělo, a je to rozdíl! Ale stejně nechápu logiku bodu A, tam si musíš vytvořit to pole jak v mainu, tak v té funkci, a pak po naplnění ho vrátíš do mainu, ale tam se musí někam uložit, takže je alokované 2x... U B už je to logické, tam si ho vytvoříš v poli a pak v mainu pracuješ už jenom s pointrem.Saphire píše:V kroku A se vrátí pole tak jak je, zatímco v kroku B se pole zapíše ADRESA POLEdo ukazatele, předáného funkci jako argument.

Kód: Vybrat vše
1)napsat funkci alokuj_pole int velikost, jednorozměrné pole float, velikost je předána parametrem pole bude vráceno jako:
a)návratová hodnota funkce
b)předáno jako parametr volaný odkazem
2)funkci napln_pole která naplní pole jakkoliv
3)funkci, která převezme jako parametry dvě pole (vytvořené funkcí výše) a porovná je na základě hodnot v poli uložených. Bude vracet:
a)0...pokud jsou pole stejná
b)1..pokud v poli 1 jsou vyšší hodnoty
c)2..pokud jsou hodnoty v poli1 nižší
4)funkci co vypočte vážený průměr (váhy volte dle vlastního uvážení) z hodnot ullžených v poli

Kód: Vybrat vše
float *alokuj_pole(int velikost)
{
return malloc(sizeof(float) * velikost);
}Kód: Vybrat vše
void alokuj_pole(int velikost, float** pole)
{
*pole = malloc(sizeof(float) * velikost);
}

píše chybu:Maranov píše:Jako návratová funkce:Kód: Vybrat vše
float *alokuj_pole(int velikost) { return malloc(sizeof(float) * velikost); }
Kód: Vybrat vše
Error 1 error C2440: 'return' : cannot convert from 'void *' to 'float *'
Kód: Vybrat vše
float *alokuj_pole(int velikost)
{
return (float*)malloc(sizeof(float) * velikost);
}
Kód: Vybrat vše
void alokuj_pole2(int velikost, float* pole)
{
*pole = malloc(sizeof(float) * velikost);
}

Kód: Vybrat vše
void alokuj_pole2(int velikost, float* pole)
{
pole = (float*)malloc(sizeof(float) * velikost);
}