主题:怎样将大小为5的数组扩充到大小为10呢?
tianzhen2010
[专家分:0] 发布于 2010-06-07 16:21:00
比如原来的一维数组A(5)=(/1,2,3,4,5/),怎样将其大小扩充到10,让A(5)=(/10,9,8,7,6,5,4,3,2,1/)呢?(不使用动态数组deallocate再allocate的方法)
能给个简要代码吗?
回复列表 (共3个回复)
沙发
asymptotic [专家分:16630] 发布于 2010-06-07 21:27:00
subroutine Allocatable_Array
implicit none
integer, allocatable:: IA(:)
! Fortran 2003 standard
IA = [1, 2, 3]
write(*, *) IA
IA = [1, 2, 3, 4]
write(*, *) IA
IA(:) = [1, 2 ,3, 4]
write(*, *) IA
return
end subroutine
板凳
asymptotic [专家分:16630] 发布于 2010-06-07 21:29:00
另外一个 Fortran 2003 新增的函数是 Move_Alloc(from, to) 也可以满足您的要求。
3 楼
爱上一个不洗 [专家分:0] 发布于 2010-06-10 06:33:00
1byte=1字节=8bit一个unicode表示的汉字=2字节=16bit byte buffer=new byte[4];的意思是新建了一个,byte类型的数组,长度为4,也就是说这个数组中有四个byte,整个数组的大小=4*1字节=4个字节string msg="我是我是我是我是我是";占20个字节逻辑上看,是装不进去的,数组会越界
我来回复