RosettaCodeData/Task/Array-concatenation/XPL0/array-concatenation.xpl0

26 lines
373 B
Plaintext

func Array_concat(A, AN, B, BN, S);
int A, AN, B, BN, S;
int P;
[
P:= MAlloc(S * (AN + BN));
CopyMem(P, A, AN*S);
CopyMem(P + AN*S, B, BN*S);
return P;
];
\ testing
int A, B, C, I, SizeOf;
[
A:= [ 1, 2, 3, 4, 5 ];
B:= [ 6, 7, 8, 9, 0 ];
SizeOf:= @B - @A;
C:= Array_concat(A, 5, B, 5, SizeOf);
for I:= 0 to 10-1 do
[IntOut(0, C(I)); ChOut(0, ^ )];
Release(C);
]