我正在尝试创建将六个变量放入char*
的代码,它们几乎都是多字节变量。因为他们都进入相同的char *我希望能够尽可能容易地将数据复制到char *中。
如果没有"标准"对我这样做的方式,我可以很容易地为我做一个处理这个问题的内联函数。然而,我希望有一种简单的方法可以做到这一点,也许就像:
memcpy(char* target, char* source, int target_start_position, int source_length)
所以要详细说明:
我将所有数据从源复制到目标。我将数据复制到target[target_start_position]
然后source_length
仅仅是为了知道要从源读取多少数据的函数。
我实际尝试过的。也许你可以看到我的思考过程是什么。
=================
这就像我希望得到的东西一样简单: (我意识到它并不起作用,因为我将指针指定为值)
char* data;
unsigned __int64 pos = 0;
int string_len = sName.size();
unsigned __int64 data_size = sizeof(string_len) + string_len + (sizeof(int) * 10) + 3;
data = new char[data_size];
data[pos] = (char const*)(&string_len);
pos += sizeof(string_len);
data[pos] = (char const*)(&sName);
pos += string_len;
data[pos] = (char const*)(&iStatPoints);
pos += sizeof(int);
注意:我为标题道歉,这是描述我能想到的问题的最精确方式。
答案 0 :(得分:1)
您可以使用指针算法获得所需的效果。例如,您可以按如下方式实现所需的功能:
void *memcpy2(void *dest, const void *src, size_t offset, size_t length) {
return memcpy((char*)dest + offset, src, length);
}