关于动态分配内存

请教各位大虾一下,关于动态分配内存的问题.1.何时动态分配内存?以前用指针的时候比如int*p直接就可以用了啊为什么后来学到链表定义完结构体指针new还要再给new分配内... 请教各位大虾一下, 关于动态分配内存的问题.

1.何时动态分配内存? 以前用指针的时候 比如 int *p 直接就可以用了啊 为什么后来学到链表 定义完 结构体指针 new 还要再给new 分配内存? 难道不是在定义的时候就分配好了? 跟之前学的有什么区别吗?

2. 链表中 头指针 head 内需要存放 结构体中数据吗? 比如说 建立一个学生信息的链表 每个节点都用来存放一个学生的基本信息, 那么head 里面也需要存放吗? 还是说 head 只是用来指着第一个学生信息的节点?

3.当我添加信息的时候 比如学生信息链表中, 每次添加一个信息 需要定义一个new 然后分配内存 然后当我输入学生信息的时候 可以直接在输入语句中引用new的成员变量吗 比如 scanf("%d",&new->score); 我书上为什么每次都是先定义一个普通变量 先输入到普通变量中 第二部在把那个变量的值赋给new的成员变量?
展开
 我来答
reacx
2010-10-12
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
1、int *p,只是定义了一个指针变量,在定义这个指针变量时,是分配了一块内存,但是这块内存中存放的是地址。而用new就可以同时开很多块内存,比如数组。
2、链表的头head,只是一个指针,它只存放了存储第一个学生信息的地址,即它指向第一个学生信息。
3、用new分配的内存是在堆中分配的,你用new分配的是什么型的变量就是什么型的,但是不能象你说的那样去引用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式