Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
#1

Как правильно? - C++

27.08.2011, 15:37. Просмотров 868. Ответов 26
Метки нет (Все метки)

Совершать итерацию, по куску памяти выделенному в куче?

например
C++
1
int* t = new int [10];
Как перемещаться. С каким шагом?


Или
C++
1
2
3
4
5
struct S
{
int a;
};
S* st = new S [10]
Как мне подсказали на форуме минимальный адресуемый размер это байт.
на встроенном массиве:

C++
1
2
3
4
5
6
int mas [10] ={0};
 
mas [6] = 7;
 
int* z1 = & mas[1];
int* z2 = & mas[2];
шаг равен 4, т.е. размеру инта (z1, z2);
А в куче?

C++
1
2
t++; //отличается более чем на 4;
t+sizeof(int);// тоже адрес более чем на 4 отличается.
В чем ошибка? Как перемещаться подскажите плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
27.08.2011, 17:21  [ТС]     Как правильно? #21
убрал.
теперь вот так

C++
1
return (top+i)->val;
результат на картинке.
Миниатюры
Как правильно?  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.08.2011, 17:24     Как правильно? #22
Цитата Сообщение от silent_1991 Посмотреть сообщение
в общем случае, бывают колебания в зависимости от компилятора и ОС)
от разрядности ОС
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
27.08.2011, 17:32     Как правильно? #23
Цитата Сообщение от AzaKendler Посмотреть сообщение
результат на картинке.
Возможно ты чего-то недоговариваешь, так как программа из #7 в принципе не компилируема.
Не верю (с), в общем.
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
27.08.2011, 17:36  [ТС]     Как правильно? #24
grizlik78, спасибо в квадрате. ошибка была не там. а в конструкторе. И за арифметику спасибо. Буду читать еще раз. и еще раз.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
27.08.2011, 17:44     Как правильно? #25
Цитата Сообщение от Deviaphan Посмотреть сообщение
от разрядности ОС
Точно)) Что-то сегодня я не в духе...
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2297 / 1667 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.08.2011, 18:24     Как правильно? #26
Цитата Сообщение от AzaKendler Посмотреть сообщение
return (top+i)->val;
Может все таки упростить запись до:
C++
1
return top[i].val;
?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2011, 18:28     Как правильно?
Еще ссылки по теме:

C++ Как правильно переделать в c++ ?
Как правильно записывать условные операторы и как прервать проверку при достижении результата? C++
Программа правильно сохраняет, но не правильно считывает матрицу из файла C++
как правильно пользоваться C++
C++ Как правильно записать алгоритм и как отобразить max и min?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
AzaKendler
 Аватар для AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772
27.08.2011, 18:28  [ТС]     Как правильно? #27
CyBOSSeR, да можно и так.
Yandex
Объявления
27.08.2011, 18:28     Как правильно?
Ответ Создать тему
Опции темы

Текущее время: 20:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru