#include <stdio.h>
#include <stddef.h>
#define LEN 2
void foo(int* a[][10], size_t len) {
printf("%s\n", "successfully called foo."); }
int main(void) {
// a is an LEN-array of an 10-array of (int *)
int *a[LEN][10] = {{0}};
// but the identifier `a` will decay to be a pointer of type int*[10]
// p1 is a pointer to an 10-array of (int *)
int *(*p1)[10] = 0;
foo(a, LEN);
foo(&a, LEN);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRkZWYuaD4KI2RlZmluZSBMRU4gMgoKdm9pZCBmb28oaW50KiBhW11bMTBdLCBzaXplX3QgbGVuKSB7CglwcmludGYoIiVzXG4iLCAic3VjY2Vzc2Z1bGx5IGNhbGxlZCBmb28uIik7Cn0KCmludCBtYWluKHZvaWQpIHsKCQoJLy8gYSBpcyBhbiBMRU4tYXJyYXkgb2YgYW4gMTAtYXJyYXkgb2YgKGludCAqKQoJaW50ICphW0xFTl1bMTBdID0ge3swfX07CgkvLyBidXQgdGhlIGlkZW50aWZpZXIgYGFgIHdpbGwgZGVjYXkgdG8gYmUgYSBwb2ludGVyIG9mIHR5cGUgaW50KlsxMF0KCQoJLy8gcDEgaXMgYSBwb2ludGVyIHRvIGFuIDEwLWFycmF5IG9mIChpbnQgKikKCWludCAqKCpwMSlbMTBdID0gMDsKCQoJZm9vKGEsIExFTik7Cglmb28oJmEsIExFTik7CgkKCXJldHVybiAwOwp9Cg==