2012-04-16 6 views
0

Я хотел бы знать различные способы инициализации массива в C, потому что я имею маленькую проблему при попытке сделать что-то ...Способы инициализации массивов в C

Im отправных программирований в 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"); 
} 

, переписывающей то, что находится внутри [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"); 
} 
+0

memcpy не инициализирует массив, он присваивает. –

ответ

0

Следует различать назначение массива (например., Тетсру, или использовать в то время как/цикл для назначения элементов в массиве один за другим, что угодно) с инициализации массива. Массив может быть инициализирован только в строке определения.

Проверьте здесь два способа указания инициализаторов для массивов: initialization of arrays.

+0

Хммм не уверен, поняли ли вы меня, я бы хотел инициализировать массив со значением из другого массива ..... – JorgeeFG

+0

Вы не можете этого сделать. Вы читали ссылку в моем посте? –

Смежные вопросы