Search code examples
arrayscpointersc-stringsstring-literals

Add string to array C (pointers)


Hello everyone here below i have some code that intialisize an array with 4 elements but there is space for 50 elements.

Now i want that i can manually add some elements to the array but it doesn't work for me can somebody help me? like here i want to add Sander to the 5th element.

#include <stdio.h>

int main()
{
    int i;

char *arr[50] = {"C","C++","Java","VBA"};
char *(*ptr)[50] = &arr;

(*ptr)[5]="Sander";
for(i=0;i<5;i++)
    printf("String %d : %s\n",i+1,(*ptr)[i]);

return 0;
}

Thx a lot


Solution

  • It seems you mean the following

    #include <stdio.h>
    
    int main( void )
    {
        int i;
    
        char *arr[50] = {"C","C++","Java","VBA"};
        char **ptr = arr;
    
        ptr[4] = "Sander";
    
        for ( i = 0; i < 5; i++ )
            printf("String %d : %s\n", i+1, ptr[i] );
    
        return 0;
    }
    

    Or the following

    #include <stdio.h>
    
    int main( void )
    {
        int i;
    
        char *arr[50] = {"C","C++","Java","VBA"};
        char * ( *ptr )[50] = &arr;
    
        ( *ptr )[4] = "Sander";
    
        for ( i = 0; i < 5; i++ )
            printf("String %d : %s\n", i+1, ( *ptr )[i] );
    
        return 0;
    }
    

    In the both cases the output will be

    String 1 : C
    String 2 : C++
    String 3 : Java
    String 4 : VBA
    String 5 : Sander