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

Странное поведение указателя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти суммарную площадь равнобедренных треугольников, имеющих равное основание А, но различные длины боковой стороны http://www.cyberforum.ru/cpp-beginners/thread650471.html
Условие задачи: Найти суммарную площадь равнобедренных треугольников, имеющих равное основание А, но различные длины боковой стороны,образующие прогрессию А+1, А+2, А+3,...,А+N Не доходить как...
C++ Как создать прогу на С++ Возможно я неправильно вопрос сформулировал. Но вот уже больше года работаю на С++, но так до сих пор и не знаю как мне сделать программу, как все обычные, допустим как driver genius. Т.е. я в студии... http://www.cyberforum.ru/cpp-beginners/thread650465.html
C++ Подключение Dll библиотеки, вылетает программа
Добрый вечер!Помогите пожалуйста разобраться в чем проблема.. Задача: из библиотеки winmm.dll вызвать фукцию PlaySound()(это работает), после воспроизведение должна выводится сума двух чисел, функция...
C++ Матрицы
Заполнить двумерный массив следующим образом: (см.карт.)
C++ Что дальше? http://www.cyberforum.ru/cpp-beginners/thread650429.html
Здравствуйте.Я давно уже изучаю С++,изучил уже ООП,STL и т.д. все что касается консольных приложений.Что делать дальше?Хочу научится создавать полноценные приложения,работающие с графическим...
C++ Создание динамической матрицы никак не могу понять в чем ошибка #include <stdio.h> void matrix(int n) { int** arr = new int*; for(int i = 0; i<n;i++) { arr = new int ; подробнее

Показать сообщение отдельно
PSIAlt
87 / 87 / 8
Регистрация: 19.06.2012
Сообщений: 245
12.09.2012, 10:33
Строки char* кончаются когда встречается символ с кодом 0. Когда ты выделяешь память (new, malloc) - выданная память не инициализирована. То есть в ней может находится что угодно, обычно это остатки от предыдущих приложений или остатки твоих собственных обьектов (которые ты удалил ранее). Так вот, если нужно просто создать пустую строку делай так:
C++
1
2
3
4
char * line3 = new char[30];
line3[0] = 0; // Ставим знак окончания строки прямо в начале
// ...
delete []line3;
Получается в line3 лежит последовательность в которой первый же символ идет с кодом 0. Соответвенно strlen(line3) будет == 0, что мы обчно и называем "пустой строкой"
З.Ы. Не забывай delete[] для обьектов которым ты делал new[]. В данном случае (прога почти сразу выходит) - пофигу, но вообще так оставлять нельзя.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru