上善若水分享 http://blog.sciencenet.cn/u/ddbb12 迷途知返的书童,苦海无边的行僧。

博文

Fortran 语言常用的分配内存的语句及其功能区别

已有 6226 次阅读 2010-2-27 11:48 |个人分类:计算机|系统分类:科研笔记

下边的文字来自于visual Fortran 6.5 help 文档,Thanks for the Editor of the document. I just translate it. Enjoy.

动态内存分配数据对象可以是静态的也可以是动态的。

如果数据对象是静态的,在编译的时候,就会给数据对象给定一定数量的内存,并且在执行期间直到程序退出才会释放这些内存。如果数据对象是动态的,对象所需要的内存可以在程序运行的过程中被创建、修改和释放。

 在Fortran 95/90中,指针、可变数组和自动数组都是动态数据对象。

对于指针而言,直到指针被使用allocate语句赋值或者指针被指向一个动态的目标,才会有存储空间。指针可以使用NULLFY语句从目标上动态的移除。

Allocate 语句也可以为一个动态数组创建存储空间。而deallocate语句可以用于释放用前面的allocate语句创建的存储空间。

 自动数组与可变数组的区别在于他们是在流程进入到一个过程后自动的生成和释放的。

声明型语句:

ALLOCATABLE : 用于申明数组是动态可分配的。

Pointer : 申明是指针类型的变量。

可执行语句:

创建存储空间:

allocate : 该语句即可以用于动态数组也可以用于指针的内存分配。

释放存储空间:

deallocate : 该语句可以用于释放由allocate 创建的动态数组和指针的存储空间。

NULLIFY :用于解除指针与目标之间的关联,尤其是指针不是由allocate创建分配的内存。

ASSOCIATED :用于测试当前指针是否有目标与其关联,(这里需要注意,所有建立但未初始化的指针的关联状态都是不确定,在这种情况下,该函数返回的逻辑值是不可信的.)

pointer-object => target :指针的赋值和传值标记。



https://wap.sciencenet.cn/blog-71139-298088.html

上一篇:Latex处理文章的时候遇到的两个错误
下一篇:我出离愤怒了,关于有人说大学生就业预期偏高!!
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-22 01:16

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部