Anonymous user
Create a two-dimensional array at runtime: Difference between revisions
Create a two-dimensional array at runtime (view source)
Revision as of 00:29, 25 November 2021
, 2 years ago→{{header|Action!}}
(Added solution for Action!) |
|||
Line 105:
INCLUDE "D2:ALLOCATE.ACT" ;from the Action! Tool Kit. You must type 'SET EndProg=*' from the monitor after compiling, but before running this program!
DEFINE PTR="CARD"
DEFINE INT_SIZE="2"
DEFINE CARD_SIZE="2"
TYPE IntArray2D=[BYTE rows,cols
BYTE FUNC GetNumber(CHAR ARRAY s)
Line 122 ⟶ 123:
PROC Create(IntArray2D POINTER a)
BYTE row
IF a.
rowArray=Alloc(a.rows*CARD_SIZE)
a.
FOR row=0 TO a.rows-1
DO
Line 135 ⟶ 136:
PROC Destroy(IntArray2D POINTER a)
BYTE row
IF a.
rowArray=a.
FOR row=0 TO a.rows-1
DO
Free(rowArray(row),a.cols*INT_SIZE)
OD
Free(a.
a.
RETURN
PROC SetValue(IntArray2D POINTER a BYTE row,col INT v)
INT ARRAY colArray
IF a.
Break()
FI
rowArray=a.
colArray=rowArray(row)
colArray(col)=v
Line 161 ⟶ 162:
INT FUNC GetValue(IntArray2D POINTER a BYTE row,col)
INT ARRAY colArray
IF a.
Break()
FI
rowArray=a.
colArray=rowArray(row)
RETURN (colArray(col))
Line 201 ⟶ 202:
a.rows=GetNumber("rows")
a.cols=GetNumber("cols")
a.
TestCreate(a)
|