Der normale Parameterübergabemechanismus in C ist "call by value", d.h.
so wie du das machst, übergibst du Kopien deiner Zeiger, die lokal
vertauscht werden, ausserhalb der Funktion jedoch ( eben weil es Kopien
sind ) unverändert sind. Wenn du "call by reference" haben willst, dann
musst Zeiger auf die Originale übergeben, also Zeiger auf Zeiger:
[/c]
void SwapDevices(MY_device **dev_a, MY_device **dev_b)
{
OWI_device *dev_s;
dev_s = *dev_a;
*dev_a = *dev_b;
*dev_b = dev_s;
}
...
...
int main (void) {
MY_device *dvo, *dvi;
...
...
...
SwapDevices(&dvo, &dvi);
}