1. 伯乐范文网 > 知识库 >

哥哥有点迷惑,C++结构体指针数组如何分配空间,用new

本文目录索引

1,C++结构体指针数组如何分配空间,用new

2.指针数组:一个数组里存放的都是同一个类型的指针,通常我们把他叫做指针数组。
比如 int * a[10];它里边放了10个int * 型变量,由于它是一个数组,已经在栈区分配了10个(int * )的空间,也就是32位机上是40个byte,每个空间都可以存放一个int型变量的地址,这个时候你可以为这个数组的每一个元素初始化,在,或者单独做个循环去初始化它。
3.例子:
int * a[2]={ new int(3),new int(4) }; //在栈区里声明一个int * 数组,它的每一个元素都在堆区里申请了一个无名变量,并初始化他们为3和4,注意此种声明方式具有缺陷,VC下会报错
例如 :
int * a[2]={new int[3],new int[3]};
delete a[0];
delet a[10];

int * a[2];
a[0]= new int[3];
a[1]=new int[3];
delete a[0];
delet a[10];
这样申请内存的风格感觉比较符合大家的习惯;由于是数组,所以就不可以delete a;编译会出警告.delete a[1];
注意这里 是一个数组,不能delete [] ;

4.指针的指针;
int ** cc=new (int*)[10]; 声明一个10个元素的数组,数组每个元素都是一个int *指针,每个元素还可以单独申请空间,因为cc的类型是int*型的指针,所以你要在堆里申请的话就要用int *来申请;
看下边的例子 (vc & GNU编译器都已经通过);
int ** a= new int * [2];     //申请两个int * 型的空间
a[1]=new int[3];        //为a的第二个元素又申请了3个int 型空间,a[1]指向了此空间首地址处
a[0]=new int[4];        ////为a的第一个元素又申请了4个int 型空间,a[0] 指向了此空间的首地址处
int * b;
a[0][0]=0;
a[0][1]=1;
b=a[0];
delete [] a[0]       //一定要先释放a[0],a[1]的空间,否则会造成内存泄露.;
delete [] a[1];
delete [] a;
b++;
cout<<*b<<endl; //随机数
5.注意 :因为a 是在堆里申请的无名变量数组,所以在delete 的时候要用delete [] 来释放内存,但是a的每一个元素又单独申请了空间,所以在delete [] a之前要先delete [] 掉 a[0],a[1],否则又会造成内存泄露.
#include
#include
#include
#include
#include

using namespace std;

typedef class student
{
public:
int number;
char* name;
}STU, *LPSTU;

vectorvec;
vector::iterator iter;

mapmapstu;
map::iterator itermap;

void main(void)
{
char* str1 = "YaoMing";
char* str2 = "T_MAC";
char* str3 = "Join";

LPSTU stu[3];

for (int n=0; n < 3; n++)
{
stu[n] = new student;
}

stu[0]->name = new char[strlen(str1)+1];
strcpy(stu[0]->name,str1);
stu[0]->number = 1;

stu[1]->name = new char[strlen(str2)+1];
strcpy(stu[1]->name,str2);
stu[1]->number = 2;

stu[2]->name = new char[strlen(str3)+1];
strcpy(stu[2]->name,str3);
stu[2]->number = 3;

int i = 0;
for(;i < 3 ; i++)
{
vec.push_back(stu[i]);
mapstu.insert(make_pair(stu[i]->number,stu[i]));
}
for (iter=vec.begin();iter!=vec.end();++iter)
{
coutnamenumber<<endl;
}

for (itermap = mapstu.begin();itermap != mapstu.end(); ++itermap)
{
coutfirstsecond->name<<endl;
}

for( i = 0;i < 3 ; i++)
{
vec.pop_back();
mapstu.erase(stu[i]->number);
}
cout<<vec.size()<<"/t"<<mapstu.size()<<endl;

for( i = 0;i < 3 ; i++)
{
delete[] stu[i]->name;
delete stu[i];
}
}

C++结构体指针数组如何分配空间,用new

2,哥哥心情不好送给安慰哥哥的句子

1、就算这世界有太多的失望,希望你能试着接受,并且学着不为难自己。 2、无论晴空万里还是雨雪霏霏,愿被岁月温柔以待,时光能缓,故人不散。 3、岁月还漫长,你心地善良,终会有一人陪你骑马喝酒走四方。 4、无论你正经历着什么,过得是否开心,世界不会因为你的疲惫,而停下它的脚步。那些你不能释怀的人与事,总有一天会在你念念不忘之时早已遗忘。无论黑夜多么漫长不堪,黎明始终会如期而至。 六、所有回不去的良辰美景,都是举世无双的好时光,余生愿你常欢笑,别流泪,也别想他。 5、也许别人给得了你安慰,也给的了劝慰、告诫,却永远不知道你心底是多么的万箭穿心。不论有多少的委屈,多么的难受,记得最终能治愈自己的还是自己。 八、无论今后的路如何,我们都要在心底默默鼓励自己,坚持不懈,等待那一场破茧的美丽。 6、你要去变得更好,不要总是回头看那些曾经伤害过你的人,路还很长,温暖的事情以后一定会发生。 7、不要把烦恼带到床上,因为那是一个睡觉的地方。不要把怨恨带到明天,因为那是一个美好的日子。

3,心理问题,哥哥姐姐帮帮我

适者想一些愉快的事情,军训虽然很累不过可以见到很多朋友啊?
好像你对环境的反差很敏感。我以前也有你这样的感觉,因为我在海外没那么多朋友。我那时候是上网,或者打电话给朋友。吹牛,打打游戏(可以说话的)自己找乐子,只要开心了心情也跟着好起来。 久而久之无论在哪里都可以适应环境。 最重要的是你怎么想的, 这种时候你的负面想法越多,心情越来越差。你觉得你很幸福快乐就不知不觉傻笑,心情也跟着好起来,所以多想想快乐的事情。

4,我是否患上了抑郁症,懂的哥哥姐姐帮帮我啊!我该怎么办

我是一个心理咨询师
你能详细说下你这个有时的频率吗?以及持续这种心情的时间吗?

正常人偶有抑郁是很正常的
对于你们非专业人士鉴别抑郁症只要把握一下几点
三低 就是说情感低 意志低 活动行为低(就是都减退的意思)
有轻生想法
另外这种持续的心情低落 有个比较长的时间 符合以上标准就是为可能抑郁症 可去医院就诊和治疗

看了你的问题 你其实根本不算是抑郁症。你的问题属于我们心理咨询里的发展性咨询的解决范畴。简而言之就是心理健康的人在遇到家庭问题 个人发展和职业选择问题 择偶问题上出现的一些内心冲突。
你烦恼的根源是 作为一个年轻人你想出去闯荡一下 这实际上是你希望获得自我证明和认可的一个行为。但是另一方面你又实际的想到,你的实力可能确实达不到你的想象,加上家长的压迫反对(你内心其实是抗拒的) 导致了你现在如此冲突的心理情况。
我有百度hi 你可以留言给我

5,烦恼,家庭关系

  其实像你这种情况很多人都会遇到,我就是一例子。我现在上大学了,高中以前都是走读,小时候很听话,但初中时很叛逆,经常跟妈妈吵架,我和妈妈都是急脾气,我一放学回到家就看这不顺眼看那不顺眼,喜欢埋怨,妈妈听见就十分不爽,于是我们就会吵,虽然有时妈妈做的确实不好,但我很多次都会事后后悔,觉得对妈妈太苛刻了,但我还是改不了那个臭脾气,还是经常和妈妈吵架。直到上高中,妈妈对我的好我才真正看清,这世上没人比她更爱我!虽然我们在一起还是会吵,但每次吵的时候我不会像以前那样口无遮拦地说话。因为我懂,她爱我。
  妈妈其实是很容易受伤的,如果自己的子女都不尊重自己、不懂自己,那她岂不会觉得自己活得很没意义?
  作为儿女,我们不能去完全改变母亲,所以我们要改变自己,学会站在母亲的角度看问题,体会母亲的心,减少与母亲的冲突,总之就是学会爱自己的妈妈!爱她的一切,理解她,包容她,有什么事要平心静气地跟她说,不要觉得她烦,要多和她沟通,让她知道你对她的爱!让她知道她有一个好儿子,一个可以让她感受幸福的儿子。
  如果你不善口头表达,那就以书面的形式给妈妈写封信吧,告诉她,你爱她,把你对家庭和睦的渴望告诉她,相信你妈妈会感受到你的心的!
  真心希望你们一家人能生活幸福,希望我能帮到你!

6,烦恼 家庭关系

这个问题确实不好解决,建议你去问问博客的博主晚睡姐姐,在两性及家庭情感方面能指点人看得蛮透彻,帮人解决疑难方面还是比较好的,我一直看她的博客,从中受益不少。5月底的一篇博文《读懂他人的善意》或许也能用于你的婆婆身上,她很想帮你们照顾孩子,分担家里的负担,她的能力或者表现出来的行为让你觉得很担心,但并不等于说她不会很上心地照顾孩子,她有她的善意,也许你没有读懂。

直接发邮件给晚睡姐姐的,也许她会给你一个满意的答案。
晚睡姐姐:http://blog.sina.com.cn/buhui3000