Author: Tom Likens
Date: 09:10:21 02/05/02
Go up one level in this thread
On February 05, 2002 at 08:32:35, Antonio Senatore wrote:
>Hi friends:
>
>I have one array A[n] and another B[n] (both of the same dimension) and I want
>to make A = B without using a loop like
>
>for (i=0; i < n; i++) A[i] = B[i];
>
>My question is if is it possible to do that without using none kind of loops
>(and as I am working in C, I can't work with vectors or to use the lib
>"algorithm")
>
>Thanks in advance
>
>Antonio
Here ya go, here's a "simple" way to copy an array :)
Note, from and to are what they imply and count holds the number of
items to copy.
register int n=(count+7)/8;
switch(count & 7){
case 0: do { *to++ = *from++;
case 7: *to++ = *from++;
case 6: *to++ = *from++;
case 5: *to++ = *from++;
case 4: *to++ = *from++;
case 3: *to++ = *from++;
case 2: *to++ = *from++;
case 1: *to++ = *from++;
} while(--n > 0);
}
This was invented by Tom Duff a number of years back when he was at
Lucas Films. By the way, just to head off the question before it's
asked, - Yep this is *legal* ANSI C.
enjoy,
--tom
P.S. Or you could just use "memcpy" ;o
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.