c - Runtime of Initializing an Array Zero-Filled -
if define following array using zero-fill initialization syntax on stack:
int arr[ 10 ] = { 0 };
... run time constant or linear?
my assumption it's linear run time -- assumption targeting fact calloc
must go on every byte zero-fill it.
if provide why , not it's order xxx tremendous!
the runtime linear in array size.
to see why, here's sample implementation of memset, initializes array arbitrary value. @ assembly-language level, no different goes on in code.
void *memset(void *dst, int val, size_t count) { unsigned char *start = dst; (size_t = 0; < count; i++) *start++ = value; return dst; }
of course, compilers use intrinsics set multiple array elements @ time. depending on size of array , things alignment , padding, might make runtime on array length more staircase, step size based on vector length. on small differences in array size, make runtime constant, general pattern still linear.
Comments
Post a Comment