создать мульти массив dimensioanl и написать его утешатьтетсру удалить переменные в массив символов в C
char a[5][10];
strcpy(a[0], "111111");
strcpy(a[1], "211112");
strcpy(a[2], "311113");
strcpy(a[3], "411114");
strcpy(a[4], "511115");
printf("size : %d \n", sizeof(a));
int i;
for(i = 0; i < 5; i++)
{
printf("%d : %s \n",i,a[i]);
}
результат
size : 50
0 : 111111
1 : 211112
2 : 311113
3 : 411114
4 : 511115
затем скопировать массив в другой массив, и писать оба их утешать
char a[5][10];
char b[][10]={"0"};
strcpy(a[0], "111111");
strcpy(a[1], "211112");
strcpy(a[2], "311113");
strcpy(a[3], "411114");
strcpy(a[4], "511115");
memcpy(&b,&a,sizeof(a));
printf("sizeof(a) : %d \n", sizeof(a));
int i;
for(i = 0; i < 5; i++)
{
printf("%d : %s \n",i,a[i]);
}
printf("sizeof(b) : %d \n", sizeof(b));
for(i = 0; i < 5; i++)
{
printf("%d : %s \n",i,b[i]);
}
результат:
sizeof(a) : 50
0 :
1 :
2 :
3 :
4 : 511115
sizeof(b) : 10
0 : 111111
1 : 211112
2 : 311113
3 : 411114
4 : 511115
Что произошло с переменными в массиве? почему содержимое массива пуст? Я использую Ubuntu 14.04
и GCC версии (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
Даже не следует запускать. Вы получаете доступ к неинициализированной памяти. – Leandros
В тот момент, когда вы пишете 50 байт из 'a' в 10-байтовый буфер' b', все ставки отключены. – mah
Какую длину, по вашему мнению, имеет внешний размер 'b'? Чего вы ожидаете? И почему? – Olaf