С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Несколько вопросов по строкам в С - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отличие заголовочных файлов http://www.cyberforum.ru/cpp-beginners/thread124021.html
чем отличается string.h cstring string
C++ разделение данных в файле как читать из файла данные в стуктуру если формат такой: Олег Иванович...............234434 Марина Сергеевна..........544355 Вместо . пробел. тоесть выравнено все.... http://www.cyberforum.ru/cpp-beginners/thread124012.html
чтение файла C++
в книге ifstream aa; aa.open(............); нам объясняли: ifstream open(''lala.txt,ios::....); точно не помню
static и глобальная видимость C++
прочитал что если писать static int a = 5; то a будет видно ото всюду но оказалосбь это не так... void a(); int main() { static int a = 5; a(); } void a() {
C++ Отличие инкриментов указателей http://www.cyberforum.ru/cpp-beginners/thread124008.html
Чем отличатеся ++*p от (*p)++ и от *p++ вроде увеличивается значение а не адлрес указателя.....
C++ Волшебство с символьным массивом указателей #include <iostream> #include <windows.h> //Для начала установите вручную шрифт Lucida Console в свойствах окна консоли. #include <fstream> using namespace std; const int ras = 6; //Размер... подробнее

Показать сообщение отдельно
usernet009
24 / 24 / 1
Регистрация: 28.12.2009
Сообщений: 85

Несколько вопросов по строкам в С - C++

30.04.2010, 23:49. Просмотров 454. Ответов 5
Метки (Все метки)

Привет всем участникам форума. Изучаю С++, по пути прошел строки из С ( массивы символов )
И осталось несколько вопросов, ответов на которые в книге найти не могу.
1:
C++
1
char *ptr="String1";
так мы создаем указатель который указывает на строку String1.
А можно ли делать вот так ?
C++
1
2
char *ptr = "String1";
ptr = "long string2";
я думал, что работать не должно, но оно работает, тоесть после этого указатель ptr указывает на "long string2" и, я еще заметил, что ptr стал указывать на другую область памяти. MVS 2010 никаких ошибок с памятью не выдает. Вопрос, почему ? получается что компилятор сам пересоздает для указателя ptr массив символов и пишет туда "long string2" ?
2:
Области видимости массивов и строк
допустим есть функция
C++
1
2
3
4
5
char *create()
{
    char *ptr = "string";
    return ptr;
}
и дальше функция main()
C++
1
2
3
4
5
void main()
{
    char *str;
    str = create();
}
Такой код "правильный" ? И когда умрет массив "string", созданый в функции ?
3:
Такой вопрос.
Допустим создаем массив символов
C++
1
char str[10];
а потом бац.. и копируем в него большую строку с помощью функции strcpy
C++
1
strcpy(str,"LONG LONG STRING");
по идее должно выдать ошибку записи в память, но нифига не выдает. Почему ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.