首先,如果已经提出并解决了这个问题,我真的很抱歉 - 我花了很长时间搜索并尝试修改代码示例以提供我需要的东西......但遗憾的是无济于事。本质上,我只是想将一个结构的内容复制到另一个结构(在其他地方有记录,但我无法让它工作)。
扫描仪在读取条形码时填充以下结构:
struct barcode
{
char *text;
int length;
int id;
int min;
int max;
};
这被实例化为:
static struct barcode code = {0};
我实例化另一个相同类型的:
struct barcode *barcodeHolder;
这旨在存储扫描条形码的副本。这是因为随后将扫描指示其他步骤的其他代码,例如条形码以指示数字或阶段(例如,结束、开始等)。一旦我想将结构内容写入磁盘,我就会使用结构的“副本”,因为这就是我想要的。
但是,char *text 属性始终等于 'c' 而不是条形码的值。
我将它们复制如下:
barcodeHolder = malloc(sizeof(code));
barcodeHolder->text = malloc(strlen(code->text) + 1);
strcpy(barcodeHolder->text, code->text);
barcodeHolder->id = code->id;
barcodeHolder->length = code->length;
barcodeHolder->max = code->max;
barcodeHolder->min = code->min;
这是我从其他类似主题的帖子中得到的。
但是,我显然在做一些愚蠢的错误,并且欢迎任何人可能提供的任何帮助,以便我的 struct text 元素副本确实得到正确的复制值。
谢谢!