Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,884 questions

51,810 answers

573 users

How to allocate array of pointers with pointer-to-pointer using malloc in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h> 
    
int main(void)
{
    char **p = malloc(sizeof(char *) * 3);
      
    if (p == NULL) {
        perror("malloc() error");
        return -1;
    }
      
    char a = 'a', b = 'b', c = 'c';
      
    p[0] = &a;
    p[1] = &b;
    p[2] = &c;
      
    printf("%c, %c, %c\n", *p[0], *p[1], *p[2]);
     
    printf("%c, %c, %c\n", **p, **(p + 1), **(p + 2));
    
    **p = 'z';
    **(p + 1) = 'x';
    *p[2] = 'w';
    
    printf("%c, %c, %c\n", a, b, c);
      
    free(p);
     
    return 0;    
}
 
  
  
/*
run:
  
a, b, c
a, b, c
z, x, w
  
*/

 



answered Apr 12, 2024 by avibootz
edited Apr 13, 2024 by avibootz
...