回 帖 发 新 帖 刷新版面

主题:怎样将大小为5的数组扩充到大小为10呢?

比如原来的一维数组A(5)=(/1,2,3,4,5/),怎样将其大小扩充到10,让A(5)=(/10,9,8,7,6,5,4,3,2,1/)呢?(不使用动态数组deallocate再allocate的方法)
能给个简要代码吗?

回复列表 (共3个回复)

沙发

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

板凳

另外一个 Fortran 2003 新增的函数是 Move_Alloc(from, to) 也可以满足您的要求。

3 楼

1byte=1字节=8bit一个unicode表示的汉字=2字节=16bit byte buffer=new byte[4];的意思是新建了一个,byte类型的数组,长度为4,也就是说这个数组中有四个byte,整个数组的大小=4*1字节=4个字节string msg="我是我是我是我是我是";占20个字节逻辑上看,是装不进去的,数组会越界

我来回复

您尚未登录,请登录后再回复。点此登录或注册