summaryrefslogtreecommitdiff
path: root/C/Pointers/multi_indirection.c
diff options
context:
space:
mode:
authorCarlos Maiolino <[email protected]>2025-07-10 22:55:07 +0200
committerCarlos Maiolino <[email protected]>2025-07-10 22:56:55 +0200
commitd98f46ce647846b0aa30b2e16a30fd4e152a1bf5 (patch)
tree267474fcc77cf20b428f6f4c7f768ca09f4cfe0e /C/Pointers/multi_indirection.c
parent869e68986aa8f69af6e7842260a68d1e5c6f796f (diff)
Add new code
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'C/Pointers/multi_indirection.c')
-rw-r--r--C/Pointers/multi_indirection.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/C/Pointers/multi_indirection.c b/C/Pointers/multi_indirection.c
new file mode 100644
index 0000000..92b677c
--- /dev/null
+++ b/C/Pointers/multi_indirection.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+
+char *words[3];
+
+int main(void)
+{
+ char *pc;
+ char **ppc;
+ int i;
+ char *foo, *bar;
+
+ printf("multiple indirection example\n");
+
+ words[0] = "zero";
+ foo = "FOO";
+ words[1] = "one";
+ bar = "BAR";
+ words[2] = "two";
+
+ for (int i = 0; i < 3; i++)
+ printf("%s\n", words[i]);
+
+ printf("Print each char in each string...\n");
+
+ ppc = words;
+
+ printf("Addr of array head %p\n", words);
+ for (i = 0; i < 3; i ++) {
+ ppc = words + i;
+ pc = *ppc;
+
+ printf("array %d -> loc %p -> deref: %p\n", i, &words[i], *ppc);
+ while (*pc != 0) {
+ printf("addr: %p - content: %c \n", pc, *pc);
+ pc += 1;
+ }
+
+ printf("\n");
+ }
+
+ return 0;
+}