#1Kent
No po prvé, ti máš vo funkcii ukazovateľ na ukazovateľ a nie obyčajný ukazovateľ.
Ďalšia vec je tá, že vo funkcii prijímaš ukazovateľ na void ale posielaš tam adresu typu int.
A je zbytočné vytvárať ďalší ukazovateľ na a, kedže tvoj program to nepotrebuje. Do funckie môžeš rovno poslať adresu premennej a.
Takže zmeň funkciu na
void vymen(int *p1, int *p2)
{
int pom;
pom = *p1;
*p1 = *p2;
*p2 = pom;
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
vymen(&a,&b);
getchar();
return 0;
}
#5Kent
Nevidím preto využitie, kedže ukazovateľ na ukazovateľ sa používa pre dynamické matice. A Aj tak v tej funkcii pracuješ len s obyčajným ukazovateľom. A to čo chceš ty sa ani nedá spraviť. Lebo aj keď by si si vytvoril dva samostatne ukazovatele a poprepájal ich, tak stále to bude ukazovať len na tú premennú a a bude to obyčajný ukazovateľ. Keď ty z niečoho spravíš **p1 tak je to defakto matica
#9Robo
tak teoreticky by to mohl pouzit pro serazeni neceho s vetsim mnozstvim dat na jednu polozku (treba vetsi strukturu - prohazovat nekde ty, tak to bude docela sranda)
Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...