#include<stdio.h>
char* my_strcpy(char* source, char* destination) {
char* p = destination;
while( *source != '\0' ) {
*p++ = *source++;
}
*p = '\0';
return destination;
}
int main() {
char stringa[40] = "Time and tide wait for none";
char stringb[40];
char *ptr;
char *ptr1;
ptr = stringa;
ptr1 = stringb;
puts(stringa);
puts(ptr);
my_strcpy(ptr, ptr1);
puts(ptr);
return 0;
}
这里的变量destination
,作为函数的本地副本,返回的指针是安全的。我相信只要返回后立即使用该地址就会是安全的,否则如果其他进程使用该地址,它将被更改。不做怎么安全返回return destination
?
是否可以执行 mallocp
并返回它而不是分配指向的位置destination
?