主题:怎样将大小为5的数组扩充到大小为10呢?
			 tianzhen2010
				 [专家分:0]  发布于 2010-06-07 16:21:00
 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
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
asymptotic [专家分:16630]  发布于 2010-06-07 21:29:00				
				另外一个 Fortran 2003 新增的函数是 Move_Alloc(from, to) 也可以满足您的要求。
							 
						
				3 楼
				
					 爱上一个不洗 [专家分:0]  发布于 2010-06-10 06:33:00
爱上一个不洗 [专家分: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个字节逻辑上看,是装不进去的,数组会越界
							 
									
			
我来回复