动态开辟的链表 可以当做数组使用
2012-05-19 16:51
204 查看
#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] 使用的是 开辟的链表的第二个元素 , 而不是第三个。
#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] 使用的是 开辟的链表的第二个元素 , 而不是第三个。
相关文章推荐
- 学生类封装 , (链表)插入排序成绩 无动态数组 ,动态开辟空间 以及静态函数,数据成员的使用
- 为数组动态开辟空间,合理使用内存资源
- 链表实现动态的数组开辟!
- 使用链表与指针,动态开辟空间,录入学生学号及成绩,并输出满足条件的学生。
- 使用jQuery加DIV实现可以动态添加的金字塔结构
- 动态数组使用
- 使用动态数组结构的一个好处
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- c语言动态调整数组大小如何使用realloc
- {希尔排序、快速排序、动态数组、单链表、字符串转整型}大综合
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- 使用jQuery加DIV实现可以动态添加的金字塔结构
- 使用标准C语言建立动态随机数组
- ArrayList动态数组的使用和遍历
- 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)
- JavaScript基础 在字符数组中添加 字符\ 要使用\\才可以
- 输入数组成矩阵,可以用空格或者ENTER区分每个数字;malloc动态数组演示
- java关于ArrayList动态数组与静态数组Arrays-元素比较输出最大最小值的使用例子
- VB.NET 数组的定义 动态使用 多维数组
- QT下资源使用和资源占用…(可以动态加载资源文件,这样不占内存)