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

Popular posts from this blog

mod rewrite - Using "?" when rewriting the URL -

.htaccess: Transfer name to index.php if not directory public -

Admob integration with pygame in android -