Question:将字符串s,t拼接为r。
Answer1:
char * r;
strcpy(r,s);
strcat(r,t);
此时会报错,因为当我们定义了一个指针的时候,实际上是在堆上给分配了一块内存,但是如果我们不初始化这块内存的话,我们并不知道这个地址在哪。
Answer2:
char r[100];
strcpy(r,s);
strcat(r,t);
此时结果是正确的,因为当我们定义个数组的时候,我们是已经知道这块地址的起始位置的,而且数组在整个内存中的排列方式是线性的,所以能够自然的找到后面的地址。但是存在一个问题,对于数组,我们要事先定义好它的大小,这样会造成资源的浪费。
Answer3:
</pre><pre name="code" class="cpp">char *r;
r=(char *)malloc(strlen(s)+strlen(t)+1);
if(!r){
exit(1);
}
strcpy(r,s);
strcat(r,t);
...
free(r);
使用了malloc函数一定要将其free