#include <stdio.h>
int main(void){
char *a[5] = { "Hi", "My", "Name", "Is" , "Dennis"};
char **aPtr = a; // This is acceptable because 'a' is double pointer
//char ***aPtr2 = &aPtr; // This is also acceptable because they are triple pointers
char ***aPtr2 = &a; // This is not acceptable according to gcc 4.8.3, why ?
//This is the rest of the code, the side notes are only for checking
printf("%s\n",a
[0]); //Prints Hi printf("%s\n",a
[1]); //Prints My printf("%s\n",a
[2]); //Prints Name printf("%s\n",a
[3]); //Prints Is printf("%s\n",a
[4]); //Prints Dennis
printf("%s\n",*(a
+0)); //Prints Hi printf("%s\n",*(a
+1)); //Prints My printf("%s\n",*(a
+2)); //Prints Name printf("%s\n",*(a
+3)); //Prints Is printf("%s\n",*(a
+4)); //Prints Dennis
printf("%s\n",*(*(aPtr2
))); //Prints Hi printf("%s\n",*(*(aPtr2
) +1)); //Prints My // ap = a, *ap = *a, *(ap)+1 = *a+1 ? printf("%s\n",*(*(aPtr2
) +2)); //Prints Name printf("%s\n",*(*(aPtr2
) +3)); //Prints Is printf("%s\n",*(*(aPtr2
) +4)); //Prints Dennis return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKXsKY2hhciAqYVs1XSA9IHsgIkhpIiwgIk15IiwgIk5hbWUiLCAiSXMiICwgIkRlbm5pcyJ9OwpjaGFyICoqYVB0ciA9IGE7IC8vIFRoaXMgaXMgYWNjZXB0YWJsZSBiZWNhdXNlICdhJyBpcyBkb3VibGUgcG9pbnRlcgovL2NoYXIgKioqYVB0cjIgPSAmYVB0cjsgLy8gVGhpcyBpcyBhbHNvIGFjY2VwdGFibGUgYmVjYXVzZSB0aGV5IGFyZSB0cmlwbGUgcG9pbnRlcnMKY2hhciAqKiphUHRyMiA9ICZhOyAvLyBUaGlzIGlzIG5vdCBhY2NlcHRhYmxlIGFjY29yZGluZyB0byBnY2MgNC44LjMsIHdoeSA/CgoKCi8vVGhpcyBpcyB0aGUgcmVzdCBvZiB0aGUgY29kZSwgdGhlIHNpZGUgbm90ZXMgYXJlIG9ubHkgZm9yIGNoZWNraW5nCnByaW50ZigiJXNcbiIsYVswXSk7IC8vUHJpbnRzIEhpCnByaW50ZigiJXNcbiIsYVsxXSk7IC8vUHJpbnRzIE15CnByaW50ZigiJXNcbiIsYVsyXSk7IC8vUHJpbnRzIE5hbWUKcHJpbnRmKCIlc1xuIixhWzNdKTsgLy9QcmludHMgSXMKcHJpbnRmKCIlc1xuIixhWzRdKTsgLy9QcmludHMgRGVubmlzCgoKcHJpbnRmKCItLS0tLS1cbiIpOwoKcHJpbnRmKCIlc1xuIiwqKGErMCkpOyAvL1ByaW50cyBIaQpwcmludGYoIiVzXG4iLCooYSsxKSk7IC8vUHJpbnRzIE15CnByaW50ZigiJXNcbiIsKihhKzIpKTsgLy9QcmludHMgTmFtZQpwcmludGYoIiVzXG4iLCooYSszKSk7IC8vUHJpbnRzIElzCnByaW50ZigiJXNcbiIsKihhKzQpKTsgLy9QcmludHMgRGVubmlzCgpwcmludGYoIi0tLS0tLVxuIik7CgpwcmludGYoIiVzXG4iLCooKihhUHRyMikpKTsgLy9QcmludHMgSGkgCnByaW50ZigiJXNcbiIsKigqKGFQdHIyKSArMSkpOyAvL1ByaW50cyBNeSAvLyBhcCA9IGEsICphcCA9ICphLCAqKGFwKSsxID0gKmErMSA/CnByaW50ZigiJXNcbiIsKigqKGFQdHIyKSArMikpOyAvL1ByaW50cyBOYW1lCnByaW50ZigiJXNcbiIsKigqKGFQdHIyKSArMykpOyAvL1ByaW50cyBJcwpwcmludGYoIiVzXG4iLCooKihhUHRyMikgKzQpKTsgLy9QcmludHMgRGVubmlzCglyZXR1cm4gMDsKfQo=