Страница 1 из 1
Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 18:45
Гость
В школе дали задание
Код: Выделить всё
Условие, скопировать все из arch в указатель iarch, без циклов, только манипулируя указателями и ссылками
int arch[1];
int* iarch;
arch[10]=110;
arch[15]=150;
arch[-120]=1120;
я сделал так,
iarch = (int*)&arch;
printf("\n arch[10]=%d arch[15]=%d arch[-120]=%d",arch[10] ,arch[15], arch[-120]);
printf("\n iarch[10]=%d iarch[15]=%d iarch[-120]=%d",iarch[10] ,iarch[15], iarch[-120]);
окно вывода:
-120 не получается скопировать, как сделать правильно?
_________________________________________
arch[10]=110 arch[15]=150 arch[-120]=1120
iarch[10]=110 iarch[15]=150 iarch[-120]=3
Re: Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 19:11
dude
int arch[1];
arch[10]=110;
бляяяя
кадат это был говнофорум айтишнегоф
Re: Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 19:40
обер лейтенант
dude писал(а):int arch[1];
arch[10]=110;
бляяяя
кадат это был говнофорум айтишнегоф
зато какая экономия памяти!
Re: Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 20:14
Гость
dude писал(а):int arch[1];
arch[10]=110;
бляяяя
кадат это был говнофорум айтишнегоф
это на листике в условии было
Код: Выделить всё
int arch[1];
int* iarch;
arch[10]=110;
arch[15]=150;
arch[-120]=1120;
надо скопировать все так чтобы получилось
так
iarch[10]=110;
iarch[15]=150;
iarch[-120]=1120;
пользуясь только указателями и ссылками!
Re: Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 20:46
Гость
Написано, конечно безграмотно, но вполне возможно что будет работать. Непонятно только, как можно брать адрес от константы (arch) и почему меняется значение в неиспользованном стеке (-120). И стек ты испортил, кстати.
Re: Учу Си, подскажите, как скопировать array
Добавлено: 04.01.2013 20:50
Гость
Мы учим адресацию и поведение указателей, в моем примере получается
arch[10]=110 arch[15]=150 arch[-120]=1120
iarch[10]=110 iarch[15]=150 iarch[-120]=3
, т.е iarch[-120],копирует 3, вместо 1120, почему ?
Re: Учу Си, подскажите, как скопировать array
Добавлено: 05.01.2013 09:34
Гость
Гость писал(а):Написано, конечно безграмотно, но вполне возможно что будет работать. Непонятно только, как можно брать адрес от константы (arch) и почему меняется значение в неиспользованном стеке (-120). И стек ты испортил, кстати.
Наверное, наш лерер, специально подвох сделал, а как стек исправить, не меняя условия?
Re: Учу Си, подскажите, как скопировать array
Добавлено: 06.01.2013 19:52
Гость
Гость писал(а):Мы учим адресацию и поведение указателей, в моем примере получается
arch[10]=110 arch[15]=150 arch[-120]=1120
iarch[10]=110 iarch[15]=150 iarch[-120]=3
, т.е iarch[-120],копирует 3, вместо 1120, почему ?
я конечно не особо аитишнег но как ты умудрился отрицательный адрес в С/С++ забабахать для меня загадка. В принципе если сделать перегрузку [] (в С++) и использовать хеш вместо адреса то можно но тогда забудь про указатели и быстрое копирование массивов. Зато в качетве адреса можешь использовать что угодно, хоть буквы, хоть слова или даже целые фразы, иногда бывает очень удобно типа реляционных таблиц, вся программа умещается в несколько строк.