数据结构_P8

原创 2016年06月01日 14:33:49
/*
	静态内存分配:a[5]一直都是5了,不会再改变,(也可以认为只要没有用到malloc()函数,就是静态内存分配)
	本代码是动态内存分配:malloc函数动态改变数组内存,malloc(20)返回的是申请内存第一个地址。
	用法:强制转换(int *)malloc(sizeof(int) * len)
	2016年6月1日14:13:08
*/

# include <stdio.h>
# include <malloc.h>    //注意用malloc()函数要加头文件    

int main(void)
{
	int a[5] = {4, 10, 2, 8, 6};  //想象一下数组内存分配情况,a指向a[0]地址,a+2指向a[2]地址,*(a+2)代表a[2]值。a[5]的长度5是死的,这属于静态内存分配!
	                              //现在需要对数组分配内存或长度进行修改,用malloc函数!
	int len;
	printf("请输入你想要对a[]数组分配的长度大小: len = ");
	scanf("%d", &len);  //注意这里有个取地址符!!!按照变量地址把输入的值传送给变量。

	int *pArr = (int *)malloc(sizeof(int) * len);  //malloc(20)为申请一个20字节内存,malloc函数返回第一个字节地址!
 //第一个字节地址没有太大含义,因为不知道第一个地址代表的是int、double、char还是啥?不知道数组第一个元素占多大。
//所以要进行强制转换,(char *)、(int *)、(double *)可以说明元素是啥类型。
	
/*	pArr[0] = 4;   //等价于a[0] = 4;
	*(pArr + 1) = 10;  //等价于pArr[1] = 10;  ,可以一直增加下去到指定的20(也可以在改变啊),数组不固定长度了
	printf("%d, %d\n", *pArr, pArr[1]);
*/

	//重写上面3行代码,这里我们可以把pArr当做普通数组来使用.
	printf("请分别输入数组的值:");
	for(int i=0; i<len; i++)
	{
		scanf("%d", &pArr[i]);     //给数组赋值
	}
	for(i=0; i<len; i++)   //注意这里C语言有个问题:前面for已经定义了int i,这里不能再写int i,i已经定义了,不能重复定义!!!
		printf("%d ", pArr[i]);   //输出数组所有值


//以上是动态分配,以下是动态释放
	free(pArr);   //把pArr所代表的动态分配的20个字节的内存释放,一定要注意内存释放,malloc申请的内存系统不会自动释放。
	
	return 0;
}

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/pop_rain

数据结构习题与解析P82【例3-2-8】Java实现

package maintest; import java.util.Stack; import myutil.MyUtil; /** * @ClassName: StackTest ...

数据结构作业p60

  • 2012年09月18日 14:50
  • 2KB
  • 下载

数据结构与计算机原理2003p1-6.rar

  • 2008年12月19日 20:25
  • 499KB
  • 下载

数据结构第四版(P47~50)

#include #include #include typedef int ElemType; typedef struct DNode { ElemType data; struct DNod...

《数据结构》交换双向循环链表的结点p和它的前驱结点

2.9 交换双向循环链表的结点p和它的前驱结点   题目描述: 已知p指向双向循环链表中的一个结点,其结点结构为data,prior,next三个域; 写出算法change(p),交换p所指向的...

数据结构与算法分析 c++ P75 Vector 实现

按书中的方式,实现一下简单的Vector ,加深理解。 #pragma once #include template class Vector { public : explicit Vec...

《数据结构》--严蔚敏 静态链表排序 p270

《数据结构》--严蔚敏 静态链表排序

数据结构教程(P40~45)

#include #include #include typedef int ElemType; typedef struct LNode { ElemType data; struc...

(数据结构)栈_迷宫求解(严蔚敏P50) _模仿

一般方法: #include"ds.h" #define MAX_COLUM 10 //迷宫最大列数 #define MAX_ROW 10 //迷宫最大行数 #define MAX_NUM 10...

《数据结构》严蔚敏.吴伟民P63-65.循环队列

///dabbysunshine@qq.com /** 《数据结构》严蔚敏.吴伟民P63-65.循环队列 **/ ///如有BUG,请发邮件联系 #include "stdio....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构_P8
举报原因:
原因补充:

(最多只允许输入30个字)