将字符数组复制到字符指针中

时间:2015-05-16 01:55:28

标签: c arrays pointers char

我正在尝试将char [] array复制到char * pointer

我有2种数据类型:CHAR* dstCHAR src[]

我的目标是在不使用任何C ++定义(例如new or delete

)的情况下执行此操作

正如您所理解的,这意味着我正在寻找一种我可以使用的操作,它不会增加编译的大小。

我尝试了什么?

*src = '\0';
strcpy(dst, src);

strncpy(dst, src, sizeof(src));

基本上,我被困了,有人能给我任何想法吗?

1 个答案:

答案 0 :(得分:1)

你需要以某种方式为目的地分配内存,你不能只是“复制到指针”,因为它没有指向任何东西。

如果你需要C分配方式 - malloc,通常会使用类似的功能。

dst = (char*)malloc(strlen(src)+1);

您还可以指向代码中现有的预分配缓冲区

char[100] buffer;
dst = buffer + 42; // pointing to somewhere in the middle.

某些C运行时允许在堆栈上动态分配内存(如果只需要在当前函数中使用它就可以)alloca

复制时要小心,不要超过目标可用的内存量,否则会出现不可预测的错误结果(崩溃,程序内存损坏,随机行为)。