动态开辟的链表 可以当做数组使用

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
 int *p=NULL;
 int a = 2;
 p = (int *)malloc(sizeof(int)*5);
 memcpy(&p[2], &a, sizeof(int));
 printf("%d  %#x\n", p[2], &p[2]);
 return 0;
}

 

我在CFree上 调试, 可以看到开辟的内存地址:

0x3e2590 :  0d f0 ad ba 0d f0 ad ba                              而 &p [2] 的地址: (int *) 0x3e2598

0x3e2598 :  02 00 00 00 0d f0 ad ba

0x3e25a0 :  0d f0 ad ba 0d f0 ad ba

0x3e2598:  ab ab ab ab ee fe ee fe

0x3e25b0:  00 00 00 00 00 00 00 00 

从上可以看到, p[2] 使用的是 开辟的链表的第二个元素 , 而不是第三个。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值