Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Откуда берутся символы, из следующих участков памяти? / 13 сообщений из 13, страница 1 из 1
23.06.2017, 01:21
    #39476501
ayvango
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
void printTest(char* c, unsigned n) {
	for (unsigned i = 0; i < n; ++i) {
		printf("%d %c \n", i, c[i]);
	}
}

int main() {
         printTest("123", 11);
}



Из строки "123" создаётся временный объект, имеющий место в памяти, при достижении конца которой берутся следующие участки, в которых может находиться всё, что угодно? А на 3-й позиции пустота, поскольку она указывает на завершающий '\0'?

Вывод
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
0 1
1 2
2 3
3
4 Р
5 &#8596;
6 @
7
8 M
9 i
...
Рейтинг: 0 / 0
23.06.2017, 05:11
    #39476513
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
ayvangoв памяти, при достижении конца которой берутся следующие участки, в которых может находиться всё, что угодно?да, это остатки от работы других (или этой) программ. Советую посмотреть стек под дебагом при вызове функций.
...
Рейтинг: 0 / 0
23.06.2017, 07:41
    #39476527
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Не надо лезть в память, которую твоя прога не выделяла. Там может быть что угодно: мусор, данные других объектов, а может вообще ничего не быть, тогда твоя прога просто вылетит.
...
Рейтинг: 0 / 0
23.06.2017, 12:15
    #39476687
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
ayvango,

По идее должно было сработать исключение типа ArrayIndexOutOfBoundsException ... Но нет! Только не в C/C++ !!!
...
Рейтинг: 0 / 0
23.06.2017, 18:12
    #39476918
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Usmanayvango,

По идее должно было сработать исключение типа ArrayIndexOutOfBoundsException ... Но нет! Только не в C/C++ !!!
Это С, а в С++ есть std::vector, он даст исключение.
...
Рейтинг: 0 / 0
23.06.2017, 18:34
    #39476938
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Dima T, Си тоже вальнет Exception, если прога попатается вылезти за пределы выделенных ей страниц памяти.
...
Рейтинг: 0 / 0
23.06.2017, 19:27
    #39476952
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Dima T....а может вообще ничего не быть....
Там живет великий NULL!
...
Рейтинг: 0 / 0
23.06.2017, 20:07
    #39476968
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
rdb_devDima T, Си тоже вальнет Exception, если прога попатается вылезти за пределы выделенных ей страниц памяти.
Не Си а ОС и я об этом уже написал выше 20585131 , это самое лучшее что может случиться. ИМХО Надеяться на это не стоит.
...
Рейтинг: 0 / 0
23.06.2017, 20:29
    #39476985
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Dima TНе Си а ОС и я об этом уже написал выше 20585131 , это самое лучшее что может случиться. ИМХО Надеяться на это не стоит.Не вижу проблемы... VEH
...
Рейтинг: 0 / 0
23.06.2017, 20:35
    #39476990
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
SiemarglDima T....а может вообще ничего не быть....
Там живет великий NULL!Великий NULL живёт в первых 64кБ адресного пространства процесса Windows.
...
Рейтинг: 0 / 0
23.06.2017, 20:40
    #39476992
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
rdb_dev,

иногда лучше бухать....
...
Рейтинг: 0 / 0
24.06.2017, 13:15
    #39477093
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Когда я кодил на ZX-Spectrum 8bit, то сегменты Основной программы (BASIC, или инициированное через USR()
для нужн ассеблера) пересекались со стеком если стек рос бесконтрольно либо само приложение пухло.
Вобщем никакого разграничения на сегменты не было.

Треш! Угар! И последее что я видел либо мёртвое зависание либо сетка красный вертикальных полосок
(процедура reset... ).
...
Рейтинг: 0 / 0
26.06.2017, 05:11
    #39477406
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откуда берутся символы, из следующих участков памяти?
Не нужны никакие проверки индекса массива в плюсах. Для меня не составляет труда следить за индексом там, где мне это нужно. Но меня бы сильно напрягло бы, если бы массив сам следил и тратил процессорное время на то, что мне не нужно.
maytonТреш! Угар! И последее что я видел либо мёртвое зависание либо сетка красный вертикальных полосокда, весёлое было времечко, когда можно было влезть данными в видеопамять, которая под них в данный момент не подразумевалась
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Откуда берутся символы, из следующих участков памяти? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]