关于动态数组的撤销
假如我创建了一个动态数组
int *p = new int[ 3 ];
delete [] p; // 这是正常撤销
那我是否能一个个元素撤销呢?比如先撤销最后一个p[ 2 ]?如果可以该怎么实现呢?
PS:本人信息与计算科学即将毕业(数学功底较好,打算做开发)。自学C++(java),算是入门了吧。
大大们推荐一下第一份工作应该是去稍微大一点的公司( 就怕人家瞧不上我[ 普通本一 ] )还是去小点的公司先发展。
如果是去小公司应该选择什么类型的呢?
[解决办法]
不可以
[解决办法]
int *p = new int[ 3 ];
本质上是分配一块内存,类似于下面的代码
int * p = (int*)malloc(3 * sizeof(int));
所以释放时只能一次释放。
[解决办法]
刚开始不要在乎别的,只要能学到东西就好
[解决办法]
不能,楼主想法和数组的设计思路不一致
[解决办法]
去什么公司就看楼主的想法了,稳定点就大公司~有拼劲就去小公司~说不定就成功了~
[解决办法]
准备入行的话,建议从正规公司起步,个人能力靠自学可以搞定,流程规范是需要环境压迫才能形成习惯的
[解决办法]
//在堆中开辟一个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//---------------
[解决办法]
当然是不能这么操作的。
推荐去大公司,各地方面比较成熟,学到的东西多