我从一个函数得到一个指向块的(空的开始)数据的指针。
这个指针是:
char* data;
我的工作是在这个块中插入不同类型的数据。我只知道数据类型(string / int / float)及其长度(以字节为单位)。
例如,对于插入整数,我想为每个块赋予如下形式:
|block_num|age|weight|favorite_number|
所以我的主要问题是,如何将数字插入块并让它们像?我想像数据[3]那样每次都能获得体重。
我曾尝试使用memset和memcpy,但没有成功。
谢谢你的时间!
答案 0 :(得分:-1)
如果您想要写入char*
指向的地址,您需要将其转换为正确的类型(您想要的)并取消引用它。
例如:(此处returnedFromFunc
与您的data
类似。)
char *returnedFromFunc = func();
您可以通过将int
正确地投射到int*
*((int*)(returnedFromFunc))=intValue;
char *originalPtrValue = returnedfromFunc; // store it for future referece
returnedfromFunc += sizeof intVar;
要转到下一个位置,您只需执行此操作: -
int
同样,如果您知道要存储的数据类型,也可以访问它。
例如,如果是printf("%d ", *((int*)(returnedFromFunc)));
你可以这样做
sizeof
使用char*
运算符,您可以访问不同的位置。(从最初的<script>
import toastr from 'toastr';
export default {
mounted(){
toastr.success('Hello from toastr!');
}
}
</script>
<template>
<div>
Template for my-component.vue here.
</div>
</template>
<style>
/* HOW TO IMPORT `toastr.css` FROM NODE_MODULES HERE?
</style>
值中删除。)
你需要知道你可以写多少内存。否则你可能会尝试写入你没有权限的内存。(超出界限)