array function allocation