diff options
| author | Carlos Maiolino <[email protected]> | 2025-07-10 22:55:07 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-07-10 22:56:55 +0200 |
| commit | d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 (patch) | |
| tree | 267474fcc77cf20b428f6f4c7f768ca09f4cfe0e /C/Pointers/multi_indirection.c | |
| parent | 869e68986aa8f69af6e7842260a68d1e5c6f796f (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.c | 42 |
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; +} |
