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

Различное поведение функции которая копирует строки с char* t и char t[] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти ошибку в пирамидальной сортировке http://www.cyberforum.ru/cpp-beginners/thread1241816.html
Здравствуйте! Подскажите, пожалуйста, где ошибка. Спасибо за помощь! #include<iostream> #include<stdlib.h> #include<time.h> using namespace std; void repair(long array, long n, long i);
C++ Посоветуйте литературу для изучения языка Посоветуйте http://www.cyberforum.ru/cpp-beginners/thread1241807.html
C++ Есть ли стандартные хэш функции
Есть ли в C++ стандартные хэш функции, в которые передаешь строку, получаешь на возврате строку, типа MD5 или CRC32. Спасибо.
C++ Как делать множественный insert в SQLite
Не пойму как делать множественный insert в sqlite . В примерах почему-то в основном одиночный . Взял еще в нагрузку sqlite3pp .(Типа раз изучаю плюсы , пусть все будет в классах ) . try {...
C++ Shared_str реализация - На выходе из деструктора падает программа http://www.cyberforum.ru/cpp-beginners/thread1241734.html
Решил реализовать shared_str class shared_ptrMy { private: Storage *st; public:
C++ Как получить указатель на функцию Здравствуйте! Подскажите, как получить указатель на функцию? Амперсанд не помогает. class Menu{ private: // Создал указатель на функцию, вроде, верно. void(*m_PrintStyle)... подробнее

Показать сообщение отдельно
cosmic
34 / 32 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1

Различное поведение функции которая копирует строки с char* t и char t[] - C++

13.08.2014, 00:42. Просмотров 595. Ответов 1
Метки (Все метки)

столкнулся с ситуацией которую не могу объяснить

пишем функцию которая копирует одну строку в другую:

C
1
2
3
4
5
6
void strstr(char* t, char* t2)
{
    int i=0, j=0;
 
    while(t[i++]=t2[j++]);
}
если ей из main передать строки которые были объявлены так, то все ОК:

C
1
2
char t[]="Hello World";
    char t2[]="privet";
но если предать такие строки, то будет ошибка доступа при записи

C
1
2
char* t="Hello World";
    char* t2="privet";
как то встречал обсуждение этой ошибки на англоязычном борде, там говорилось что есть различия в выделении памяти, но я лично не въехал и сейчас не могу найти ту страничку, короче помогите, хочу пробелы в теории подтянуть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru