scores=(int*)malloc(sizeof(int)*num); /*size of returns thesize of an int and multiply's it by the number of ints aka num,(num=4 in this case), then malloc allocates the specified amount of memory. In this case, it will take 4 bytes times 4 bytes giving 16 bytes, which is just enough to store 4 integers.*/ *(scores+0) /*dereferences what's at the scores address and if you add you can dereference the things at the address shifted up from the starting adress.*/