/*
首先说一下从1开始数 字节数
例如 0x11223344 11是第一个字节,就当做是大端字节序,一般电脑为小端字节序
补充一下大端小端字节序
大端字节序: 最直观的字节序,数据的高位存在于地址的低位
小段字节序: 数据的高位存在于地址的高位
*/
#include <stdio.h>
int change(int num, void *my_info)
//num是代表多少个字节开始,my_info是要修改的指针类型变量
{
//my_char:指向的空间为 my_info所指向的空间 + 偏移量
char* my_char = (char* )(my_info + num - 1);
int* my_num = (int* )my_char;
//修改*my_num值就是修改 my_char所指向空间的4个字节的内容,也是修改
*my_num = 0x11223344; //把相对应4字节空间改成0x11223344
return 0;
}
int main(int argc, char **argv)
{
int i = 0;
char arr[100] = "hello word! I love my maker\n";
char *p = arr;
change(2, (void*) arr); //修改第二个字节到第六个字节的内容
for( i=0; i<20; i++)
{
printf("%02x ", *p)
P++;
}
return 0;
}
//打印结果为: 68 65 11 22 33 44 77 6f ... 修改成功
C语言改变指定4个字节的内容,例如改变第2个字节到第6个字节的内容
最新推荐文章于 2022-03-02 21:36:43 发布