Switch string c language

У меня есть программа, в которой я хочу понять следующий вывод:

#include <stdio.h> 
void fastSwap (char **i, char **d) 
{ 
  char *t = *d; 
  *d = *i; 
  *i = t; 
} 
int main () 
{ 
 char num1[] = "hellohello"; 
 char num2[] = "classclass"; 
 fastSwap ((char**)&num1,(char**)&num2); 
 printf ("%s\n",num1); 
 printf ("%s\n",num2); 
 return 0; 
} 

При выводе будет изменяться только sizeof(void*) символов, а не весь массив.

почему это происходит?

&num1 это char**, не так ли?

0
задан fgfjhgrjr erjhm 7 February 2012 в 19:00
поделиться