初始化指针是否需要分配内存空间
来源:互联网 发布:canon mp288清零软件 编辑:程序博客网 时间:2024/06/05 08:45
初学指针,不知道声名指针或者声名对象时为什么要用new来分配内存空间,如以下代码:
int *a ;int b = 2;a = &b;cout<<"a = "<<*a;
此处输出结果为 a = 2;
而再看如下代码:
int *a;int b = 2;*a = b;cout<<"a = "<<*a;
运行时编译器会报错,为什么呢?
简单来讲,我们没有为int 型指针p开辟内存空间(int *p),这就意味着我们只能使用指针a去指向一个地址(a = &b),并不能访问内存p的内容(*a = b),否则编译器会报错。
那么怎样才能访问内容呢?
我们需要把int *a ;换成int *a = new int;这样我们为指针a分配了自己的内存空间,就可以进行访问(*a = b),不会报错。
这就是声名指针是否分配空间的区别,拓展到结构体指针也适用,希望加深初学者学指针的理解,如有问题欢迎讨论。
1 0
- 初始化指针是否需要分配内存空间
- 对象内存空间分配与初始化
- 堆分配的内存空间是否连续
- 定义结构体指针,内存空间分配问题
- c++内存空间分配与指针探讨
- 使用malloc为指针分配内存空间
- 分配内存空间
- 分配内存空间
- 分配内存空间
- C语言calloc()函数:分配内存空间并初始化
- C语言calloc()函数:分配内存空间并初始化
- [delphi函数] Dispose 释放为指针分配的内存空间
- 分配内存空间时指针的地址发生改变
- C语言对指针形参分配内存空间
- 记录一个指针问题(内存空间的初始化)
- <C/C++>指针在什么时候需要申请内存空间?
- 二重指针分配矩阵内存并初始化
- 内存空间与分配
- 关于STM8S IAR 无法下载程序,以及无法进去中断的问题
- Ubuntu16.04下搜狗输入法无法输入中文
- 汽车加油问题
- 单因素方差分析,卡方检验,充分条件必要条件
- 逐步优化看出Java8的强大
- 初始化指针是否需要分配内存空间
- 20个位运算技巧
- 《剑指offer》-用两个栈实现队列
- 贪心算法(2)
- 《机器学习实战》第三章:决策树(1)基本概念
- 【Java之IO】1.字节流和字符流
- Vue.js学习系列(四十四)-- 自定义事件
- 删数问题
- 贪心算法(1)