need be carefull of array and pointer