#include#include#includeintgetmax(inta,intb){if(a>b){returna;}else{returnb;}}voidswap(void*a,void*b){void*tmp;intla=sizeof(a);intlb=sizeof(b);intmax=getmax(la,lb);void*t=(void*)malloc(max);if(t==NULL){printf("%s\n","錯誤");exit(0);}memcpy(t,a,max);memcpy(a,b,max);memcpy(b,t,max);printf("%d\n",sizeof(a));printf("%d\n",sizeof(b));printf("%d\n",max);free(t);}intmain(){char*str="123";char*str2="456";swap((void*)str,(void*)str2);printf("%s\n",str);printf("%s\n",str2);}
一個程序,總是段錯誤,希望能幫我看下哪里有問題?
ABOUTYOU
2019-05-13 12:59:34