想问问int* a=new int[]这样的写法有没有错,赋值后如何获取长度
c++吧
全部回复
仅看楼主
level 3
90後_季末
楼主
int* a=new int[] 不指定长度。。编译能够通过但是好像很少见到这种写法。。delete的时候会出什么问题吗 还有这样的数组如何获取长度
2015年01月16日 01点01分
1
level 7
zarro_boogs
你试试看吧,我记忆中长度是随机的。或者不同计算机不同的一个固定值。
2015年01月16日 01点01分
2
90後_季末
那赋值后的有效长度如何获得呢比如让a[0]=1 a[1]=2;如何获得长度=2呢?试了sizeof不行。。。sizeof(a)的值是4 sizeof(*a)就变成首个元素占的空间
2015年01月16日 01点01分
zarro_boogs
回复 90後_季末 :sizeof(*a) / sizeof(int)
2015年01月16日 01点01分
90後_季末
@zarro_boogs
sizeof(*a)是等于sizeof(int)的。。。。
2015年01月16日 03点01分
level 15
一只大水鱼
new出来的内存块是有大小记录的,系统由此来判断你是否非法访问了别的内存地址。不过这大小你看不到。
2015年01月16日 02点01分
3
90後_季末
是固定的么?那么有效长度如何获取?
2015年01月16日 03点01分
一只大水鱼
回复 90後_季末 :这个指针是无法使用的。运行时必定出错。
2015年01月16日 04点01分
一只大水鱼
回复 90後_季末 :因为有安全检查。别再问了
2015年01月16日 05点01分
level 16
Sunchy321
这编译器好奇特。
2015年01月16日 03点01分
4
90後_季末
VS诶。。
很奇葩吗
2015年01月16日 03点01分
Sunchy321
回复 90後_季末 :
我确实没见过这样的语法
2015年01月16日 03点01分
level 3
90後_季末
楼主
顶一下
2015年01月16日 04点01分
5
1