sizeof在函数内部,不起作用了?~~
程序代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> void string_link(char str1[],char str2[]) { int i ,j = 0; if (sizeof(str1) < ( strlen(str1) + strlen(str2)) ) { printf("str1sizes : %d\n",sizeof(str1)); //无论哪个字符串sizeof的结果都是4 printf("str2sizes : %d\n",sizeof(str2)); printf("str1len : %d\n",strlen(str1)); printf("str2len : %d\n",strlen(str2)); printf("has not enough size!\n"); exit(1); } else { i = strlen(str1); while (str2[j]) { str1[i++] = str2[j++]; } } } void main() { char str1[80] = "hello++++",str2[40] = " word!"; printf("str1sizes : %d\n",sizeof(str1)); //这里能正确显示 string_link(str1,str2); printf("%s\n",str1); }
哪位有什么好的办法~~让它在函数内能计算准确的数组长度不?