Skip to content

Instantly share code, notes, and snippets.

@lethern
Created November 8, 2019 21:02
Show Gist options
  • Save lethern/c2002ce15d587e1744f5209f7409227a to your computer and use it in GitHub Desktop.
Save lethern/c2002ce15d587e1744f5209f7409227a to your computer and use it in GitHub Desktop.
int main()
{
int random_stack_var;
printf("stack %p\n", &random_stack_var);
puts("");
const char* c_pointer = "Hello";
printf("&c_pointer %p (size %u)\n", &c_pointer, sizeof(c_pointer));
printf("c_pointer %p : %s\n", c_pointer, c_pointer);
puts("");
char c_string[] = "Hello world";
printf("&c_string %p (size %u)\n", &c_string, sizeof(c_string));
printf("c_string %p %s\n", c_string, c_string);
printf("c_string[0] %p : %c\n", &c_string[0], c_string[0]);
printf("c_string[2] %p : %c\n", &c_string[2], c_string[2]);
puts("");
const char* c_pointer_arr[] = { "Hello", "World" };
printf("&c_pointer_ar %p (size %u)\n", &c_pointer_arr, sizeof(c_pointer_arr));
printf("c_pointer_arr %p\n", c_pointer_arr);
printf("c_pointer_arr %p : %s\n", c_pointer_arr[0], c_pointer_arr[0]);
printf("c_pointer_arr %p : %s\n", c_pointer_arr[1], c_pointer_arr[1]);
puts("");
const char** c_pointer_pointer = c_pointer_arr;
printf("&c_p_p %p (size %u)\n", &c_pointer_pointer, sizeof(c_pointer_pointer));
printf("c_p_p %p\n", c_pointer_pointer);
printf("c_p_p[0] %p : %s\n", c_pointer_pointer[0], c_pointer_pointer[0]);
printf("c_p_p[1] %p : %s\n", c_pointer_pointer[1], c_pointer_pointer[1]);
printf("c_p_p[1][1] %p : %c\n", &(c_pointer_pointer[1][1]), c_pointer_pointer[1][1]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment