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 ループを使用して配列内の要素を 1 つずつ割り当てるなど) を区別する必要があります。配列はその定義行でのみ初期化できます。

配列の初期化子を指定する 2 つの方法については、こちらをご覧ください: 配列の初期化

于 2012-04-16T03:46:47.937 に答える