首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于动态数组的撤销解决方案

2012-03-21 
关于动态数组的撤销假如我创建了一个动态数组int *p new int[ 3 ]delete [] p// 这是正常撤销那我是否

关于动态数组的撤销
假如我创建了一个动态数组
int *p = new int[ 3 ];
delete [] p; // 这是正常撤销

那我是否能一个个元素撤销呢?比如先撤销最后一个p[ 2 ]?如果可以该怎么实现呢?


PS:本人信息与计算科学即将毕业(数学功底较好,打算做开发)。自学C++(java),算是入门了吧。

大大们推荐一下第一份工作应该是去稍微大一点的公司( 就怕人家瞧不上我[ 普通本一 ] )还是去小点的公司先发展。
如果是去小公司应该选择什么类型的呢?

[解决办法]
不可以
[解决办法]
int *p = new int[ 3 ];
本质上是分配一块内存,类似于下面的代码
int * p = (int*)malloc(3 * sizeof(int));
所以释放时只能一次释放。
[解决办法]
刚开始不要在乎别的,只要能学到东西就好
[解决办法]
不能,楼主想法和数组的设计思路不一致
[解决办法]
去什么公司就看楼主的想法了,稳定点就大公司~有拼劲就去小公司~说不定就成功了~
[解决办法]
准备入行的话,建议从正规公司起步,个人能力靠自学可以搞定,流程规范是需要环境压迫才能形成习惯的
[解决办法]

C/C++ code
//在堆中开辟一个3×4×5的3维int数组#include <stdio.h>#include <malloc.h>int ***p;int i,j,k;void main() {    p=(int ***)malloc(3*sizeof(int **));    if (NULL==p) return;    for (i=0;i<3;i++) {        p[i]=(int **)malloc(4*sizeof(int *));        if (NULL==p[i]) return;        for (j=0;j<4;j++) {            p[i][j]=(int *)malloc(5*sizeof(int));            if (NULL==p[i][j]) return;        }    }    for (i=0;i<3;i++) {        for (j=0;j<4;j++) {            for (k=0;k<5;k++) {                p[i][j][k]=i*20+j*5+k;            }        }    }    for (i=0;i<3;i++) {        for (j=0;j<4;j++) {            for (k=0;k<5;k++) {                printf(" %2d",p[i][j][k]);            }            printf("\n");        }        printf("---------------\n");    }    for (i=0;i<3;i++) {        for (j=0;j<4;j++) {            free(p[i][j]);        }        free(p[i]);    }    free(p);}//  0  1  2  3  4//  5  6  7  8  9// 10 11 12 13 14// 15 16 17 18 19//---------------// 20 21 22 23 24// 25 26 27 28 29// 30 31 32 33 34// 35 36 37 38 39//---------------// 40 41 42 43 44// 45 46 47 48 49// 50 51 52 53 54// 55 56 57 58 59//---------------
[解决办法]
当然是不能这么操作的。
推荐去大公司,各地方面比较成熟,学到的东西多

热点排行