У меня возникли проблемы с пониманием разницы между выполнением вышеуказанного кода на 8-байтовой (64-битной) платформе и 4-байтовой (32-битной) платформе: его запуск на 4-байтовой платформе не работает - массивы не меняются местами ; на 8 байтах работает, но с предупреждениями.
#include <stdio.h>
void switchNames(char **a, char **b)
{
char* temp = *a;
*a = *b;
*b = temp;
}
int main ()
{
char labc[10] = "labc";
char labcpp[10] = "labcpp";
printf("Before switch: labc = %s, labcpp = %s\n", labc, labcpp);
switchNames(&labc, &labcpp);
printf("After switch: labc = %s, labcpp = %s\n", labc, labcpp);
return 0;
}