fork download
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. char *a[5] = { "Hi", "My", "Name", "Is" , "Dennis"};
  5. char **aPtr = a; // This is acceptable because 'a' is double pointer
  6. //char ***aPtr2 = &aPtr; // This is also acceptable because they are triple pointers
  7. char ***aPtr2 = &a; // This is not acceptable according to gcc 4.8.3, why ?
  8.  
  9.  
  10.  
  11. //This is the rest of the code, the side notes are only for checking
  12. printf("%s\n",a[0]); //Prints Hi
  13. printf("%s\n",a[1]); //Prints My
  14. printf("%s\n",a[2]); //Prints Name
  15. printf("%s\n",a[3]); //Prints Is
  16. printf("%s\n",a[4]); //Prints Dennis
  17.  
  18.  
  19. printf("------\n");
  20.  
  21. printf("%s\n",*(a+0)); //Prints Hi
  22. printf("%s\n",*(a+1)); //Prints My
  23. printf("%s\n",*(a+2)); //Prints Name
  24. printf("%s\n",*(a+3)); //Prints Is
  25. printf("%s\n",*(a+4)); //Prints Dennis
  26.  
  27. printf("------\n");
  28.  
  29. printf("%s\n",*(*(aPtr2))); //Prints Hi
  30. printf("%s\n",*(*(aPtr2) +1)); //Prints My // ap = a, *ap = *a, *(ap)+1 = *a+1 ?
  31. printf("%s\n",*(*(aPtr2) +2)); //Prints Name
  32. printf("%s\n",*(*(aPtr2) +3)); //Prints Is
  33. printf("%s\n",*(*(aPtr2) +4)); //Prints Dennis
  34. return 0;
  35. }
  36.  
Runtime error #stdin #stdout 0s 2248KB
stdin
Standard input is empty
stdout
Standard output is empty