#include <iostream>
using namespace std;
//By FreeNickname
//http://stackoverflow.com/questions/30581200/how-to-dereference-a-n-levels-void-pointer-to-an-int-pointer/30581819#30581819
int foo(void *p, unsigned int n) {
for (unsigned int i = 0; i < n; ++i) {
p = *((void**)p);
}
return (int)p;
}
int main()
{
int a = 7;
int *p1 = &a;
int **p2 = &p1;
int ***p3 = &p2;
std::cout<<"result: "<<foo(p3, 3);
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy9CeSBGcmVlTmlja25hbWUKLy9odHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMwNTgxMjAwL2hvdy10by1kZXJlZmVyZW5jZS1hLW4tbGV2ZWxzLXZvaWQtcG9pbnRlci10by1hbi1pbnQtcG9pbnRlci8zMDU4MTgxOSMzMDU4MTgxOQoKaW50IGZvbyh2b2lkICpwLCB1bnNpZ25lZCBpbnQgbikgewoJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQlwID0gKigodm9pZCoqKXApOwoJfQoJcmV0dXJuIChpbnQpcDsKfQoKaW50IG1haW4oKQp7CglpbnQgYSA9IDc7CglpbnQgKnAxID0gJmE7CglpbnQgKipwMiA9ICZwMTsKCWludCAqKipwMyA9ICZwMjsKCQoJc3RkOjpjb3V0PDwicmVzdWx0OiAiPDxmb28ocDMsIDMpOwoJCgkKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9