Wist I'd known earlier 2 - C Stuff

If you pass an array to a function, you can't find the length of the array. This is because the array gets converted to a pointer, and pointers only have the adress of the first element in the array. Whereas, array variables also store the length of the array.

    int wrongSizeOfArrayPassed(char arr[]) { // arr = "Hey"
        return sizeof(arr); // will return size of a pointer, not the length of "Hey" string
    }

This is called pointer decay because some information(length of array) is lost.