【发布时间】:2013-02-19 19:18:55
【问题描述】:
我还是 C 中的指针的新手,并且一直在尝试制作字符串函数。这个应该连接两个字符串,但是当我尝试运行它时,它崩溃了。
void concatenate (char *a, char *b, int size_a, int size_b) {
char *c, *d, *e;
c = a;
d = b;
int i, j, k;
int l = 1;
for(i = 0; i<size_a; i++) {
*(e+i) = *(c+i);
}
for (j = size_a; j<size_a+size_b; j++) {
*(e+j) = *(d+(j-(j-l)));
l++;
}
for (k = 0; k< size_a+size_b; k++){
printf("%c",*(e+k));
}
}
我做错了什么?
【问题讨论】:
-
编译器崩溃?真的吗?你能显示错误信息吗?
-
不仅您的函数将
char *a和char *b作为参数(无意义的名称),而且它的主体甚至以char *c, *d, *e; c = a; d = b;开头 -
提示 -
e没有指向任何东西。 -
好吧,我希望 e 指向新字符串。我该怎么做呢?
-
...为它分配一些内存?
标签: c string concatenation