Hacker News new | ask | show | jobs
by xeyownt 629 days ago
Pointer decay is not a mistake.

It is what allows to do int * p = arr, and looping on array element with p++.

Keeping array type you would jump beyond the last element at first iteration.

1 comments

It is, an array and a pointer are different types. There could be ways to convert it to a pointer, but it shouldn’t happen at so many places, implicitly.
Correct. A method to extract a pointer from an array already exists:

  int *p = &arr[0];
The mistake is to allow this:

  int *p = arr;
And yet, coding styles do not prohibit it and there is no compiler that has a warning.