C语言改变指定4个字节的内容,例如改变第2个字节到第6个字节的内容

/*
首先说一下从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  ... 修改成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值