Arrays 在C中的另一个数组中插入一个数组

Arrays 在C中的另一个数组中插入一个数组,arrays,c,arraylist,multidimensional-array,Arrays,C,Arraylist,Multidimensional Array,我试图创建一个数组变量,在每个位置中,它都有另一个数组。我的情况如下: int main() { char foo[2]; char dummy[3] = {'F', 'O', 'X'}; foo[1] = dummy; printf("%c", foo[1]); /* This printf is like a way of saying "show me the 'dummy' list" */ re

我试图创建一个数组变量,在每个位置中,它都有另一个数组。我的情况如下:

int main() {
    char foo[2];
    char dummy[3] = {'F', 'O', 'X'};

    foo[1] = dummy;
    printf("%c", foo[1]);
    /* This printf is like a way of saying "show me the 'dummy' list" */

    return 0;
}
使用这段代码,我希望控制台向我显示虚拟列表。相反,我收到了一条警告,上面写着:

“警告:指向整数转换的不兼容指针分配给” “char”来自“char[3]”[-Wint- 转换]”

我不知道我的问题是否被很好地理解,但是我想得到一个像foo[1]这样的数组位置来包含另一个像dummy这样的数组,所以当我调用foo[1]时,我得到了那个dummy数组

我希望您能帮助我,并提前感谢您花时间帮助我。

您定义的变量foo是长度为2的字符数组,但您需要的是字符指针数组。注意,字符数组伪码是非终止的;最好省去长度,改为使用字符串文本初始化它。此外,要打印字符串,需要在调用printf时使用
%s
。试试这个:

#include <stdio.h>

int main(void)
{
    char *foo[2];
    char dummy[] = "FOX";

    foo[1] = dummy;
    printf("%s\n", foo[1]);
    return 0;
}
#包括
内部主(空)
{
char*foo[2];
char dummy[]=“福克斯”;
foo[1]=假人;
printf(“%s\n”,foo[1]);
返回0;
}

foo[1]
是一个
char
,因此它不能包含由多个
char
组成的数组。也许你想要
char*foo[2]
printf(“%.3s”,foo[1])?要使数组具有另一个数组作为其元素,可以编写类似于char foo[2][3]的代码(现在是“字符的三元素数组”的二元素数组的
foo
),赋值为
memcpy(foo[1],dummy,sizeof(dummy))在这种情况下。