指针数组删除元素必须每个元素全部申请内存么?我可以部分申请么?

malloc申请一个指针数组如何写 - C语言当前位置:& &&&malloc申请一个指针数组如何写malloc申请一个指针数组如何写&&网友分享于:&&浏览:62次malloc申请一个指针数组怎么写char&*pcAllLineStandarData[1000];&我想使用malloc&声请这样一个指针数组,应该怎么写啊?
------解决方案--------------------typedef&PDATA&char&*pcAllLineStandarD
PDATA&&*pdata&=&malloc(sizeof(PDATA&));------解决方案--------------------char&*pcAllLineStandarData=(char&*)malloc(sizeof(char)*1000)------解决方案--------------------
for(int&i&=&0;&i&&&1000;&++i)
&&&pcAllLineStandarData[i]&=&(char&*)malloc(sizeof(char)&*&BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定
------解决方案--------------------楼主刚学习c语言吧。
malloc是动态随机分配内存空间的方法。
可以根据需要分配内存空间给程序使用
(char*)malloc(sizeof(char)*20)
的意思是,动态分配空间为20个char型数据大小的空间。
并且将返回的指针类型强制转换成char型指针。------解决方案--------------------引用:Quote: 引用:
typedef&PDATA&char&*pcAllLineStandarD
PDATA&&*pdata&=&malloc(sizeof(PDATA&));
我要申请一个数组,数组的每个元素都是指针,你这个可以吗?看着挺对的
for(int&i&=&0;&i&&&1000;&++i)
&&&pcAllLineStandarData[i]&=&(char&*)malloc(sizeof(char)&*&BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定
&//BUFSIZE&也就是你每个指针需要的大小,&你看实际情况设定
------解决方案--------------------
typedef&char*&(*PP)[1000];
p&=&(PP)malloc(sizeof(*p));
//注意还有初始化
------解决方案--------------------引用:Quote: 引用:
for(int&i&=&0;&i&&&1000;&++i)
&&&pcAllLineStandarData[i]&=&(char&*)malloc(sizeof(char)&*&BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有关于指针的10个必须弄懂的问题_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:281,438贴子:
关于指针的10个必须弄懂的问题收藏
1. 常量指针和指针常量的区别以及用法常量指针:本质是一个指针。常量指针就是指向常量的指针。而“指向”就是所谓的地址,因为地址才能表现指向这一概念。这表明,该指针的值存储的是一个地址,而这个地址就是被指向的常量的地址。因为是常量,所以它的值是不可修改的,因此用*号对指针不能进行赋值操作。当然,这个指针是变量,还可以指向其他的常量,但是这个指针只能指向常量,即存储的值只能是常量的地址而不能是变量的地址。指针常量:本质是一个指针。指针常量就是说指针本身就是一个常量,正如整型常量一样。那么作为常量,那么这个指针的值是无法改变的,就相当于一个整型常量一样,一旦初始化后就不可以改变。所以指针常量声明时必须初始化。初始化后这个指针就一直指向这个变量,可以通过*改变被指向变量的值。2. 指针和地址的区别本质:地址是系统的用户地址空间的虚拟内存地址编号,并不是实际的内存地址编号。地址就是一个编号而已,就像门牌号,学号。这没有所谓的存储空间的说法,就是名字。而我们编程使用的地址是虚拟内存地址,就是我们常说的内存地址。而指针,是一个变量,使用变量时需要系统分配一个内存才能使用。而指针是存储内存地址的一种变量,使用指针就像使用内存地址一样。而对指针的赋值只是改变指针变量存储的值,只是更新了一下变量中存储的值而已。区别:指针是一个存储地址的变量,占用内存空间,地址只是一串数字,不占内存空间。联系:地址是放在指针变量中的。好比 int a=3;中,a(类似于指针)和3(类似于地址)的关系。3.变量和地址的联系变量占内存空间,地址只是一串数字;每一个变量都有地址,可以通过 &变量名
取得变量的地址,就像每一个人都有一个住址一样的。4.指向指针的指针和指向常量的指针指向指针的指针:本质是一个指针,只是这个指针指向的变量是一个指针类型的;也叫二级指针。定义:int **p1;指向常量的指针:本质是一个指针,该指针只能指向常量,定义 int const *p 或者 const int *5.指针数组和指向数组的指针的区别以及用法指针数组:本质是一个数组,只是数组中的每一个元素都是指针。int * a[10];
a[0]=&b;指向数组的指针:本质是一个指针,前面是定语,是修饰语,该指针指向一个数组。inta[10];
int * pa =
或者 int(*a)[10] 这个理解为:用括号括起来的*a使得*首先与a结合,表明a是一个指针,[]表明是一个数组,int 表明这个数组中的元素都是整型的。整体理解就是: 声明一个指向含10个整型元素的数组的指针。6.指针和引用的区别以及用法指针:指向某一个变量,可以改变指向引用:给变量取别名,取外号,一旦引用,不可以修改。对引用的赋值就相当于对被引用的变量的赋值,因为引用之后,引用和变量就是同一个东西了。7.数组名和指针数组名:存放数组中首个元素的地址的常量,是地址常量,内容不可以修改,相当于一个地址常量。指针:地址变量,内容可以修改。8.内存泄露在编程中根据需要会动态分配一块内存,这块内存如果没有释放,其他任何程序都不能使用。程序结束,程序占用的资源销毁,如果程序没有释放这块内存,那么这块内存就会因为程序的结束而失去和操作系统的联系,导致这块内存无法再次使用。如果泄露的内存过多,导致可用内存越来越少,最后甚至系统所需的内存都不能满足,系统就崩溃了。重启机器后就会正常。因为重启机器后启动系统会重新规划内存,重新分配。9.动态内存分配和回收栈:栈是一个先进先出的内存结构模型。系统为程序分配内存空间时,都是按照栈的方式进行分配的。因此在程序中出现的函数调用,就是利用栈的特性实现的,这个特性在递归身上表现的淋漓尽致。函数调用时首先将本函数的所有东西压入到栈中,然后执行新函数。执行新函数时将新函数用到的所有东西压入栈顶,使用时出栈即可。执行完后,新函数中所有的东西都出栈了,再出栈就回到了原来函数的执行了。这就是巧妙的利用了栈的特性。程序中自动变量的分配(如)就是通过栈来分配的,因而执行完程序之后,这些变量所占的内存自然而然的就释放掉了。堆:堆就是一块大内存块。这个内存块是在程序所在的内存块之外的。所有程序都可以在这个堆中请求分配内存。请求成功就用一个指针指向这个请求到的内存,就可以使用了。因为这部分的内存不属于某个程序,实际上是属于系统的,相当于一个公共内存区,对于所有的程序都是可用的。当然,对于这部分的内存的管理,谁申请了就由谁来管理已分配的内存。释放掉之后就由系统来管理,未释放则一直由申请的程序进行管理和使用。如果程序运行结束后忘了释放这块内存,因而在堆中系统还是认为这块内存已经被分配,所以其他程序也就无法申请使用,而这个程序又结束了,这样一来,这块内存就谁也不可用了。这就是内存泄露。久而久之,这样的内存越来越多,那么堆中的内存就少了,自然系统就到空余的内存获取来补充堆内存的数量。然而,泄露的一直持续的话,所有的可用内存都用来做堆内存了,而对内存一直在泄露最后,堆中无可用内存,所有程序就无法请求动态分配内存了。同时此时,系统也无法请求内存,然而系统核心程序运行请求不到内存就失败,这样整个系统就运行不了了,就崩溃了。重启系统后,内存中的数据全部清零,全部重新规划,就不存在这个内存不足的问题了。但是如果还运行这些不完善的程序,还会内存泄露。堆的作用主要就是为程序提供动态内存分配,这样就能满足程序运行时增加内存的要求。程序的代码一般是在栈中的,使用动态内存分配,会给程序在内存的堆(一块特定的内存区域)中分配一块内存,利用这个动态分配函数分配的内存,在使用完后必须使用对应的函数释放相应的内存,不然就会造成内存泄露。10.C++ 中this指针
this指针是面向对象才出现的。一个对象中的方法,它是属于类的,而对象是由类实例化而产生的。因而,一个类可以产生很多对象。而对象中都包含了相同的方法。对象在调用方法时,其实是使用类的方法。此时的问题就出现了。类如何去识别是哪个对象请求调用的呢?为了解决这个问题,引入了this指针。而在成员函数中都隐含了一个this指针参数,这样,对象调用时就用这个this指针来识别对象,哪个对象调用了这个函数,这个this指针就指向哪个对象,从而就解决了问题。this是指向对象的,那么*this就可以代表这个被指向的对象了。那么this的用法就显而易见了,就是一个指针而已。相信指针都很熟练了,这里就不赘述了。
c++海同强大的师资阵容,因人制定课程内容,分阶段学习.c++就到正规IT技术培训机构-海同科技,培训IT技术面对面教学,免费重读!
槽点太多懒得噗。
足够喜感感觉第二条逻辑很混乱
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 通过指针引用数组元素 的文章

 

随机推荐