[原文地址: http://www.think400.dk/adhoc_4.htm#eks0015]
问题:
使用VB 或者C 我能够很容易的增加数组的大小而不丢失原来的数据,在RPG里面是否也可能呢?
回答:
当然可以,但是你得基于指针建立数组。并且增长内存分配大小。具体看看操作码 ALLOC, REALLOC, 和 DEALLOC 。
下面是一个快速的例子:

 

[转]如何动态增长一个数组的大小 * 数组定义--基于指针
[转]如何动态增长一个数组的大小Darray            S             
10    DIM(20000) BASED(PTR)
[转]如何动态增长一个数组的大小Dindex            s              
7  0
[转]如何动态增长一个数组的大小 
* memory allocation data items--不知道具体怎么翻译这个,按照我的理解,是一个指针结构
[转]如何动态增长一个数组的大小 
* 用于保存数组的信息,比如数组中的序号,内存大小,数组的内容
[转]如何动态增长一个数组的大小Dptr               S               
*
[转]如何动态增长一个数组的大小Dnbr_of_elems     S              
5   0 INZ(10)
[转]如何动态增长一个数组的大小Dmem_size           S              
7   0 INZ
[转]如何动态增长一个数组的大小Dx                         S             10i 
0
[转]如何动态增长一个数组的大小 
* 分配出示内存=
[转]如何动态增长一个数组的大小 
*(元素的初始数量 * 数组的内容的大小)
[转]如何动态增长一个数组的大小C                   
EVAL      mem_size = %size(array) * nbr_of_elems
[转]如何动态增长一个数组的大小C                   ALLOC     mem_size      ptr
[转]如何动态增长一个数组的大小C                   
EVAL      x = %elem(array)
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小 
* 循环测试
[转]如何动态增长一个数组的大小C     
1             DO        50            index
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小 
* 当索引超过当前数组元素的上限时
[转]如何动态增长一个数组的大小C                   
IF        index > nbr_of_elems
[转]如何动态增长一个数组的大小 
* 通过加10的步长方式 
[转]如何动态增长一个数组的大小 
*并且乘以数组元素的大小得到一个新的内存大小
[转]如何动态增长一个数组的大小C                   
EVAL      nbr_of_elems = nbr_of_elems + 10
[转]如何动态增长一个数组的大小C                   
EVAL      mem_size = %size(array) * nbr_of_elems
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小 
* 重新分配内存块,并且增长大小
[转]如何动态增长一个数组的大小C                   REALLOC   mem_size      ptr
[转]如何动态增长一个数组的大小C                   ENDIF
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小 
* Move数据测试
[转]如何动态增长一个数组的大小C                   MOVE      
index         array(index)
[转]如何动态增长一个数组的大小 
*
[转]如何动态增长一个数组的大小C                   ENDDO
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小 
* 释放内存
[转]如何动态增长一个数组的大小C                   DEALLOC                 ptr
[转]如何动态增长一个数组的大小C                   
EVAL      *inlr = *on
[转]如何动态增长一个数组的大小
[转]如何动态增长一个数组的大小


Thanks to Mark D. Walter


 

 

相关文章: