读书人

麻烦大家看看小弟我这个程序关于str

发布时间: 2013-10-02 13:10:38 作者: rapoo

麻烦大家看看我这个程序,关于strcat()的
#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main(void)
{
char a[100], b[100];
char *i, *j, *m;
m = (char *) malloc (sizeof(char)*100);
char c[] = "A";
char d[] = "B";
scanf("%s",a);
scanf("%s",b);
i = strcat(c, a);
printf("%s\n", i);
j = strcat(d, b);
printf("%s\n", j);
m = strcat(i, j);
printf("%s\n", m);
free(m);
return 0;
}
i和j分别都能正确输出,但是到了m就出现错误了,程序语法没错,麻烦大家指点一下 malloc
[解决办法]
char c[] = "A";
char d[] = "B";
这里分配的内存空间太少了,参数传进去的时候,会当成指针的形式,不会作越界安全检查的!
所以其实在使用strcat连接字符串的时候已经越界的的!

改成


char c[100] = "A";
char d[100] = "B";

[解决办法]
改用strncat
[解决办法]
c、d的空间太小。

读书人网 >C++

热点推荐