0

我想知道在 C 中初始化数组的不同方法,因为我在尝试做某事时遇到了一个小问题......

我在大学开始用 C 编程,它是第一语言,我们正在查看指针和一些函数。

也就是说,我正在尝试以下操作:

#include <stdio.h>
int main () {
    char a[][10] = {"Hola","Chau"};
    char b[][10] = {*a[0],*a[1]};
    printf("Contenido de &a es: %s \n",&a);
    printf("Contenido de &b es: %s \n",&b);
    system("pause");
}

这是在复制 a[0][0 ... 10] 中的内容,但不会起作用……至少在我们在大学使用的 MS VS 2010 中。

所以我想知道初始化数组的不同方法的参考链接。

在堆栈中搜索,我发现了 memcpy 函数,并且以这种方式工作。

#include <stdio.h>
int main () {
    char a[5] = {"Hola"};
    char b[5];
    memcpy(b,a,3); /* testing */
    b[3] = '\0'; /* testing */
    printf("Contenido de &a es: %s \n",&a);
    printf("Contenido de &b es: %s \n",&b);
    system("pause");
}
4

1 回答 1

0

您应该区分数组分配(例如,memcpy,或使用 while/for 循环来一一分配数组中的元素,无论如何)与数组初始化。数组只能在其定义行中初始化。

在此处查看为数组指定初始化程序的两种方法:初始化数组

于 2012-04-16T03:46:47.937 回答