首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么要加这句才能显示454545412312312312313225,否则无显示,该如何解决

2012-04-09 
为什么要加这句才能显示454545412312312312313225,否则无显示C/C++ codeint main(int argc, char *argv[])

为什么要加这句才能显示454545412312312312313225,否则无显示

C/C++ code
int main(int argc, char *argv[]){    char *p;        p = Strcat("454545","412312312312313225");    printf("%s",p);    return 0;}char *Strcat(char *str1, char *str2){    char *p,len1,len2;    unsigned char i;            len1 = strlen(str1);    len2 = strlen(str2);        //printf("%d %d\n",len1,len2);        //为什么要加这句才能显示454545412312312312313225,否则无显示        p = (char *)(malloc(len1+len2)+1);        while(*str1 != '\0')    {               p[i++] = *str1++;    }    while(*str2 != '\0')    {        p[i++] = *str2++;    }        p[i] = '\0';        return p;    }


[解决办法]
你这代码都编译不通过啊
p = (char *)(malloc(len1+len2)+1);

改成
p = (char *)(malloc(len1+len2+1));
[解决办法]
而且你i还没初始化
unsigned char i=0;
[解决办法]
p = (char *)(malloc(len1+len2)+1);//这句有点疏忽
 应该是这样:
 p = (char *)(malloc(len1+len2+1));

为什么len1,len2,i这些要声明为char类型?求指教
俺一般会声明为int型

楼主说的问题应该与len1、len2是char类型有关
[解决办法]
我想知道为什么不释放内存???
[解决办法]
探讨
C/C++ code

int main(int argc, char *argv[])
{
char *p;

p = Strcat("454545","412312312312313225");
printf("%s",p);
free(p); //放这这儿 ?

retur……

[解决办法]
C/C++ code
int main(int argc, char *argv[]){    char *p;        p = Strcat("454545","412312312312313225");    printf("%s",p);    free(p);    return 0;}char *Strcat(char *str1, char *str2){    char *p;    size_t len1,len2;    int i=0;            len1 = strlen(str1);    len2 = strlen(str2);        //printf("%d %d\n",len1,len2);        //为什么要加这句才能显示454545412312312312313225,否则无显示        p = (char *)malloc(len1+len2+1);        while(*str1 != '\0')    {               p[i++] = *str1++;    }    while(*str2 != '\0')    {        p[i++] = *str2++;    }        p[i] = '\0';        return p;    } 

热点排行