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.