将字符串添加到数组 C(指针)

Add string to array C (pointers)

大家好,下面我有一些代码可以初始化一个包含 4 个元素的数组,但是有 space 用于 50 个元素。

现在我希望可以手动向数组中添加一些元素,但它对我不起作用,有人可以帮助我吗?就像这里我想将 Sander 添加到第 5 个元素。

#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;
}

非常感谢

看来你的意思如下

#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;
}

或以下

#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;
}

在这两种情况下,输出都是

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