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

VC 中的指针数组有关问题

2012-03-01 
VC 中的指针数组问题!下面代码编译通过,程序退出是出错!//这样写有问题吗!我要动态数组long *m_plnew lon

VC 中的指针数组问题!
下面代码编译通过,程序退出是出错!
//这样写有问题吗!我要动态数组
  long *m_pl=new long[];
  m_pl[0]=0;
  m_pl[1]=1;
  m_pl[2]=2;

//但我这样写没有问题,但不好根据实际数组大小分配内存!
  long *m_pl=new long[4];
  m_pl[0]=0;
  m_pl[1]=1;
  m_pl[2]=2;
以上两种写法的区别是什么,那种好?

[解决办法]
long *m_pl=new long[]; 
===================
这样写编译器不知道应该new多少空间给你
可以写作:
long *m_pl=new long[i];
i是一个变量
[解决办法]
楼上正解,用new的时候这个长度可以是个变量,这样就可以根据实际长度分配了。
[解决办法]
new出来的一定要有大小
[解决办法]
在new的时候一定要有大小
[解决办法]
1)如果是想使用动态数组,最好使用STL中的vector;
2)long *m_pl=new long[]; 这个编译是无法通过的,
c++中必须明确知道数组的大小,这样才可能分配足够的内存。
3)long *m_pl=new long[4]; 
m_pl[0]=0; 
m_pl[1]=1; 
m_pl[2]=2; 
这个明确了分配的内存的大小,只是没有初始化完。
也就是m_pl[3]没有初始化,可能是一个无效的值。

热点排行