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))代码>在这种情况下。