我想使用malloc()/ new为变量m分配256KB内存。 然后,使用m存储字符串和数字等数据。 我的问题是如何将数据保存到m并检索它们。
例如,如何将int 123456存储在偏移0到3中并将其读取到变量x? 或者从偏移4到8(或9与\ 0)存储“David”字符串,然后将其检索到变量s?
答案 0 :(得分:1)
您可以通过转换指针来存储整数。
unsigned char *p = new unsigned char[256 * 1000];
*(int *) p = 123456;
int x = *(int *) p;
这是一个糟糕的主意。不要使用无类型的内存,也不要像在PHP中那样快速和松散地玩,因为C ++不太容忍草率编程。
我建议阅读一本介绍性的C ++教科书,它将解释类型和类之类的东西,你可以用来避免处理无类型的内存。
编辑:从上面的评论中,您可能希望了解指针算法。
*除非你保证你知道自己在做什么。
答案 1 :(得分:0)
请阅读我的评论,我想您需要了解更多有关C和低级本机程序的信息。
该格式是否有特定申请?
将结构分配给内存你可以做类似的事情
struct my_format{
int first;
char second[5];
};
int main()
{
struct my_format *mfp=
malloc(sizeof(struct my_format));
mfp->first=123456;
free(mfp);
}
或者其他任何不涉及内存细节(IE的确切位置的vars)vur这样做几乎在所有方面都很糟糕。