Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 15
1

Массивы Мистика, 2008 VS, C++

26.04.2010, 23:12. Просмотров 610. Ответов 6
Метки нет (Все метки)

Вобщем вопрос к людям сведущим, как вышло что строчка
C++
1
char * temp = new char [10];
создает массив непонятной длинны никак не равной десяти,
дебаг прилагается на скрине.
0
Миниатюры
Массивы Мистика, 2008 VS, C++  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2010, 23:12
Ответы с готовыми решениями:

Массивы в MS Visual C++ 2008
Здравствуйте, помогите пожалуйста решить задачу: В журнале группы ежедневно на каждом занятии...

Одномерные массивы на Visual C++ 2008 : я новичек HELP
Задача №1 Сформировать одномерный массив целых чисел, используя датчик случайных чисел и выполнить...

При переустановке Server 2008 вместо 2012 не правильно определяются RAID массивы
Уважаемые Гуру! Пробую установить Windows Server 2008 вместо Server 2012. В последнем было 2 RAID...

Отличие VS 2008 от VS 2008 в SQL Server 2008
Здравствуйте только начал изучать SQL! До этого работал в Visual Studio 2008(с++) и установил SQL...

6
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
26.04.2010, 23:15 2
Mescalito, она создаёт указатель... а поскольку символа конца строки нету , вам дебаг пишет ещё всякий мусор... из соседних ячеек памяти... наверно так
1
Эксперт С++
2330 / 1703 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
26.04.2010, 23:17 3
Цитата Сообщение от GAME Посмотреть сообщение
Mescalito, она создаёт указатель... а поскольку символа конца строки нету , вам дебаг пишет ещё всякий мусор... из соседних ячеек памяти... наверно так
Даже не наверно, а так.
Mescalito, попробуй:
C++
1
2
char * temp = new char [10];
temp[9] = '\0';
1
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 15
26.04.2010, 23:32  [ТС] 4
Большое спасибо, символ конца строки помог, но всетаки непонятно почему масив создается непонятной длинны, ведь дело не только в отображении дебага , я вполне себе могу работать с 12 тым или 15 тым элементом 10 элементного массива, и такой расклад крайне неудобен в случае когда требуется,скажем передать масив целиком в качестве аргумента да и в других случаях такой мусор малоприятен.
Выходит всегда когда требуется массив длинны i , в i тый элемент нужно писать конец строки?
0
Эксперт С++
2330 / 1703 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
26.04.2010, 23:35 5
Цитата Сообщение от Mescalito Посмотреть сообщение
Выходит всегда когда требуется массив длинны i , в i тый элемент нужно писать конец строки?
Именно так. Благодаря этому можно легко определить длину передаваемой строки в вызываемой функции.
0
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
26.04.2010, 23:36 6
Цитата Сообщение от Mescalito Посмотреть сообщение
но всетаки непонятно почему масив создается непонятной длинны, ведь дело не только в отображении дебага , я вполне себе могу работать с 12 тым или 15 тым элементом 10 элементного массива, и такой расклад крайне неудобен в случае когда требуется,скажем передать масив целиком в качестве аргумента да и в других случаях такой мусор малоприятен.

Цитата Сообщение от GAME Посмотреть сообщение
она создаёт указатель... а поскольку символа конца строки нету , вам дебаг пишет ещё всякий мусор... из соседних ячеек памяти...
тот мусор из соседних ячеек памяти к вашему массиву отношения не имеет, и лучше всё таки не использовать больше памяти чем просили. Просто ставьте в конце выделенного вами массива символ конца строки , таким образом вы будете контролировать выход за его пределы.


Цитата Сообщение от CyBOSSeR Посмотреть сообщение
C++
1
2
 char * temp = new char [10];
temp[9] = '\0';
0
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 15
26.04.2010, 23:36  [ТС] 7
буду знать, еще раз спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2010, 23:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужна помошь в подключении SQL Server 2008 и Visual Studio 2008
Добрый день уважаемые форумчане... Мне нужна ВАША помощь... Я искал в инете кучу информации о...

OC Window Server 2008(64)+1CV81 Сервер(64)+SQL 2008 (EXPRESS)
Все ставил по умолчанию т.е. на C:\ Установил 1СV81 платформу - полет нормальный Установил 1СV81...

Visual Studio 2008+ MS SQL Server 2008 добавления записей
Доброго времени суток господа! У меня возникла такая проблема : ключевое поле в таблице у меня...

Если проект создала в Visual C++ Express 2008, он должен запуститься просто в VS 2008?
Извините за глупый вопрос, просто времени нет устанавливать и проверять( Очень спешу


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.