42c*_*kes 2 c c++ malloc memset void-pointers
如果我有
void *temp = malloc(128);
memset(temp, 0 , 128);
Run Code Online (Sandbox Code Playgroud)
我想单独读取第一个字节,这是我在做什么。
char a[2];
strncpy(a, (char*)temp, 1);
int p = a[0];
//p will be zero in this case
Run Code Online (Sandbox Code Playgroud)
Q1。我敢肯定,有一种更优雅的方法可以达到相同目的。如果是这样,那会是什么?
Q2。有没有办法我可以单独更改单个字节的值?
假设我希望第一个字节的值等于int值48(即00110000),我该怎么做?我写的没有任何进展。
您可以将其投射以char *访问内存
char *buff = temp;
char p = buff[0]; // read first byte
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |