C++在定义指针时是否已经分配了该类型的空间

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:02:15
假如说定义int *P 是不是已经给P分配了int型的空间?如果是,那为什么还要动态分配空间?

int *p只是声明有这么个东西,没有给其分配内存空间,除非你使用new 或malloc 给它分配。 当然并不是指针非要分配一个内存空间,你可以使它指向一个“对象”,它也就指向了所指对象的内存空间,你就可以使用该指针对这一内存的东西进行默写操作。
比如,int n = 5;
int *p;
p = &n;
使用指针时,必须使其有一个确切的指向,否则其值是随机数,这个随机地址中可能存放着重要的数据或程序代码,盲目访问会对系统造成很大危害,当指针不指向某一确定对象,你就要使用动态分配使它有一个确定的指向。当然这样做还有很多好处,比如动态的确定数组大小,避免产生数组太大导致内存浪费,太小不够用等弊端~~

没分配。你可以认为它给你分配了一个指针型的空间。

如果是,那为什么还要动态分配空间?
所以不是

C定义变量时是怎样分配内存得?是在定义时还是在初时化时?java数组得内存分配是在什么时候? 定义一个指针,没有指向,分配内存了吗? 关于C语言指针定义的问题 C语言里怎么在数组里定义汉字变量 和指针指向汉字数组? 请问是否可以在C++类中定义一个指向自己的指针 有些C和C++开发者故意在解除了某个指针引用的内存的分配之后,把该指针设为NULL.这为什么是个好主意? 在C++中的定义字符串指针后,在没有用const,系统是不是默认为指向常量的指针. c++ 指针指向类时内存分配 在C++中已经定义的如:int *p 为整型指针了,为什么在程序中有是有*p,有时用p,各指的是什么? 在c语言中的指针是指鼠标指针吗