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);
}哪位有什么好的办法~~让它在函数内能计算准确的数组长度不?









