为什么要加这句才能显示454545412312312312313225,否则无显示,该如何解决
为什么要加这句才能显示454545412312312312313225,否则无显示
------解决方案--------------------
你这代码都编译不通过啊
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); 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); 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; }