#include <stdio.h>
#define SENTINEL -1
void foo(int *a) {
size_t n = 0;
while (*a != SENTINEL) {
a++;
n++;
}
}
int main(void) {
foo((int[]){4, 5, 6, 7, 8, SENTINEL});
foo((int[]){-1, -2, SENTINEL});
foo((int[]){1, 2, 3}); // no sentinel -- UB!!
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNFTlRJTkVMIC0xCgp2b2lkIGZvbyhpbnQgKmEpIHsKCXNpemVfdCBuID0gMDsgCgl3aGlsZSAoKmEgIT0gU0VOVElORUwpIHsKCQlhKys7CgkJbisrOwoJfQoJcHJpbnRmKCIlenUgZWxlbWVudHMuXG4iLCBuKTsKfQoKaW50IG1haW4odm9pZCkgewoJZm9vKChpbnRbXSl7NCwgNSwgNiwgNywgOCwgU0VOVElORUx9KTsKCWZvbygoaW50W10pey0xLCAtMiwgU0VOVElORUx9KTsKCWZvbygoaW50W10pezEsIDIsIDN9KTsgLy8gbm8gc2VudGluZWwgLS0gVUIhIQp9Cg==