首页 > 解决方案 > 是否使用 strcpy

问题描述

如果我有一个字符串数组

char* q[2];
q[0] = "Hello";
q[1] = "World";

我想放入q[0]一个新的字符串数组

char* x[2];

在 x[0] 中调用 x,我应该使用 strcpy 还是只使用这个?

x[0] = q[0];

这似乎可行,但过去没有使用 strcpy 引起了一些问题。

我应该这样做以防万一吗?有什么区别?

char* a = malloc(strlen(q[0]) + 1);
strcpy(a, q[0]);
x[0] = a;

标签: c

解决方案


分配工作无需分配任何额外的内存。

如果使用strcpy(),则必须x[0]在进行复制之前分配足够的内存(strlen(q[0]) + 1最少字节数),并且必须确保在适当的时间释放它。


推荐阅读