C:向char指针(地址)添加整数

时间:2017-11-18 11:29:02

标签: c char-pointer

我从一个函数得到一个指向块的(空的开始)数据的指针。

这个指针是:

char* data;

我的工作是在这个块中插入不同类型的数据。我只知道数据类型(string / int / float)及其长度(以字节为单位)。

例如,对于插入整数,我想为每个块赋予如下形式:

|block_num|age|weight|favorite_number|

所以我的主要问题是,如何将数字插入块并让它们像?我想像数据[3]那样每次都能获得体重。

我曾尝试使用memset和memcpy,但没有成功。

谢谢你的时间!

1 个答案:

答案 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> 值中删除。)

你需要知道你可以写多少内存。否则你可能会尝试写入你没有权限的内存。(超出界限)