▁C ▁use ▁stack ▁space ▁for ▁variables , ▁and ▁the ▁collection ▁of ▁variables ▁allocated ▁for ▁a ▁sub rout ine ▁is ▁known ▁as ▁a ▁stack ▁frame . ▁While ▁the ▁computer ▁will ▁set ▁aside ▁the ▁appropriate ▁amount ▁of ▁space ▁for ▁the ▁stack ▁frame , ▁it ▁usually ▁does ▁so ▁simply ▁by ▁adjust ing ▁the ▁value ▁of ▁the ▁stack ▁pointer , ▁and ▁does ▁not ▁set ▁the ▁memory ▁itself ▁to ▁any ▁new ▁state ▁( typ ically ▁out ▁of ▁efficiency ▁concerns ). ▁Therefore , ▁whatever ▁contents ▁of ▁that ▁memory ▁at ▁the ▁time ▁will ▁appear ▁as ▁initial ▁values ▁of ▁the ▁variables ▁which ▁occup y ▁those ▁addresses . ▁ ▁Here ' s ▁a ▁simple ▁example ▁in ▁C : ▁void ▁count ( ▁void ▁) ▁{ ▁▁▁▁ ▁int ▁k , ▁i ; ▁▁▁▁▁▁▁▁▁ ▁for ▁( i ▁= ▁ 0 ; ▁i ▁< ▁ 1 0 ; ▁i ++) ▁▁▁▁ ▁{ ▁▁▁▁▁▁▁▁ ▁k ▁= ▁k ▁+ ▁ 1 ; ▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁▁ ▁printf ("% d ", ▁k ); ▁} ▁ ▁The ▁final ▁value ▁of ▁k ▁is ▁undefined . ▁The ▁answer ▁that ▁it ▁must ▁be ▁ 1 0 ▁assumes ▁that ▁it ▁started ▁at ▁zero , ▁which ▁may ▁or ▁may ▁not ▁be ▁true . ▁Note ▁that ▁in ▁the ▁example , ▁the ▁variable ▁i ▁is ▁initialized ▁to ▁zero ▁by ▁the ▁first ▁clause ▁of ▁the ▁for ▁statement . ▁ ▁Another ▁example ▁can ▁be ▁when ▁dealing ▁with ▁struct s . ▁In ▁the ▁code ▁snippet ▁below , ▁we ▁have ▁a ▁struct ▁student ▁which ▁contains ▁some ▁variables ▁describing ▁the ▁information ▁about ▁a ▁student . ▁The ▁function ▁register _ student ▁le aks ▁memory