c - 是否使用 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;
解决方案
分配工作无需分配任何额外的内存。
如果使用strcpy()
,则必须x[0]
在进行复制之前分配足够的内存(strlen(q[0]) + 1
最少字节数),并且必须确保在适当的时间释放它。
推荐阅读
- python - 如何修复 Python TypeError 和 AttributeError
- python - 如何将流文件传递给执行 Python 脚本并使用属性和 Nifi 变量来存储该文件?
- javascript - 如何根据传递的值从对象中查找键值
- vue.js - 无法使用 Vue 和 Vuetify 将模板文本添加到 v-textarea
- php - 压缩问题 Excel 使用 Maatwebsite
- c++ - 为什么 C++ 中的这个函数有效,但只有在打印到标准输出时才有效?
- html - 如何计算我的代码中的盒子大小?
- elasticsearch - Elasticsearch:按时间范围分组
- javascript - Javascript - 如何检查'req.send(json);' 返回 0 或 -1
- javascript - Express 的异步中间件