c++ - strcpy 到 C++ 中的多维数组
问题描述
我一直在尝试将单词复制到多维数组中时遇到问题。
这是我用来创建数组的代码:
char *word_buffer;
char *return_result[64];
int buffer_count = 0;
int word_start = 0;
int word_end = 0;
// Some extra, irreverent code.
for (int i = 0; i < length; i += 1) {
if (text[i] == delim) { // Delim is a value such as '\n'
word_end = i;
word_buffer = (char*) malloc(sizeof(char)*64);
strncpy(word_buffer, text + word_start, word_end - word_start); // Copy the word into word_buffer
strcpy(*(return_result + buffer_count), word_buffer);
word_start = i + 1;
}
}
我相信我的问题在于最后一行。我试图给出strcpy
一个指向我希望word_buffer
放置结果的二维数组的地址的指针。但是,这会导致分段错误。
目标是返回一个单词数组。IE
char *result[10] = { "foo", "bar", "x", "y", "z" };
但是要使用代码动态完成此操作。我拆分单词的代码运行良好。虽然,我不知道如何将值放入二维数组。
编辑:用户 SHR 建议我尝试strcpy
用return_array[buffer_count]=word_buffer;
. 这确实部分有效,但每次在数组中随机数量的值后崩溃。我真的不明白这可能是由于高内存使用率造成的。跟踪二进制文件的内存使用情况没有任何异常。
解决方案
推荐阅读
- swiftui - Apple Watch 上的 SwiftUI 全屏显示
- slack - 链接公共 Slack 频道时获取私人频道信息
- python - 为数百万数据实现的数据结构
- javascript - 无法让程序运行。(Javascript、HTML、CSS)
- sql - 我想在 BigQuery 中使用表达式的特定列上的最大列值对记录进行重复数据删除
- aspose - 保存 Aspose.Slides.Presentation 可防止文件被打开
- ruby-on-rails - 将 Rails 应用程序部署到 Heroku 时出现问题(无法加载此类文件 -- rake)
- php - 使用 PHP 通过 OTP SMS 验证手机号码
- android - 登录错误:登录此应用程序时出错。请稍后在 Flutter for android 模块中重试
- javascript - XMLHttpRequest 不是由 FIrefox 扩展生成的