Witam, mam problem w wydawało by sie latwa funckja i nie moge wpasc na jej rozwiazanie: otoz funkcja ma posiadac dwa argumenty ktyruch wartosci zamieni jak np:
void zamiana(int *a,int * b){
int *tmp=*a;
*a=*b;
*b=*tmp;
}
tylko ze ta funkcja zamienia wartosci typu int a potrzebuje takiej ktora zamieni 2 podstawowe dowone typy np float i float char* i char* itd
moze kod ktory nie dziala(bo nie ma takiego prawa) bardziej zobrazuje to co chcialem przekazac w slowach:
int main()
{
(...)
char *s="Pierwszy";
char *c="Drugi";
float q=3.14,w=21.8363;
char e=65,r='z';
int t=15,y=22;
double u=123.45, i=13.59;
printf("przed:\t\t%f %f\t%c %c\t%d %d\t%f %f\t%s %s\n",q,w,e,r,t,y,u,i,s,c);
swap(&s,&c);
swap(&q,&w);
swap(&e,&r);
printf("zamiana:\t%f %f\t%c %c\t%d %d\t%f %f\t%s %s\n",q,w,e,r,t,y,u,i,s,c);
(...)
}
void swap(void *a, void *b){
printf("%f %f\n",a,b);
int *tmp= a;
a=b;
b=*tmp;
}