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

Не присваевается значение - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не выводит не правильный результат http://www.cyberforum.ru/cpp-beginners/thread790154.html
Подскажите, пожалуйста, почему не выводит результат???? Вроде ошибок нету... #include <math.h> #include <conio.h> #include <iostream.h> int main() { double Suma1=0; float c=1;
C++ Четыре одномерных массива Всем привет, проблема по вот этой задачке: Здесь код который я написал, всё вроде норм только вот из элементов min не могу составить новый массив. #include <iostream> #include <math.h> #include <stdlib.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread790152.html
C++ Дана матрица размера MxN
Дана матрица размера MxN. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, …). Вывод элементов производить по столбцам, условный оператор не использовать. помогите ктонить написать код для данной программы...знающий язык С++ ..если не сложно, то с операторами ввода/вывода( printf("..");/scanf("...") плиз, буд оч. благодарен программистам которые помогут.
C++ Сформировать последовательность по некоторому правилу
Дана последовательность действительных чисел. Необходимо сформировать новую последовательность по некоторому правилу. Для представления исходной и результирующей последовательности используйте библиотечный шаблон vector. само задание: Новая последовательность должна содержать все элементы исходной, модуль которых находится в заданном промежутке . кто может помочь, я вообще не понимаю...
C++ Задачи приближенные к реальной работе http://www.cyberforum.ru/cpp-beginners/thread790129.html
Привет. Думаю много кто из форумчан, уже выполнял практические задания, (например работая джуниором, или уже не джуниором), ну вообщем кому не трудно, пожалуйста киньте задачи, которые приближенные к действительности, например как я пойду на стажировку, или уже не работу, какие там задачи? Зарание спасибо. :)
C++ Работа с реестром windows в с++ Доброго времени ув. форумчани. Возникла такая необходимость как заменять значения файлов реестра windows на свои константные значения через возможности языка с++. Прошу помощи в заключающейся в нескольких намеках на то как это реализовать и если можно то небольшой пример реализации. Премного благодарен откликнувшимся! подробнее

Показать сообщение отдельно
ITcrusader
Эксперт C++
 Аватар для ITcrusader
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
19.02.2013, 20:07     Не присваевается значение
Ну так вот:

Функция объявляется так
C++
1
void reverse(char* s, size_t arg_a, size_t arg_b);
Т.е. при её вызове предоставляется значение s, которое - адрес начала области памяти, хранящей строку, которую следует подвергнуть обработке (но s - не сама строка). Далее, C++ по умолчанию осуществляет передачу значений в функцию по значению. Это означает, что внутри функции работа осуществляется не над самим передаваемым объектом, а над его копией, которая к началу выполнения функции идентична переданному параметру и которая уничтожается по завершении функции.

Т.е. внутри reverse работа происходит с копией указателя на область памяти. В итоге ты формируешь строку, на которую указывает b и осуществляешь присваивание s = b, тем самым делая так, что s теперь указывает на ту область памяти, которую ты хотел бы использовать в качестве ответа, НО s - внутри reverse уничтожится при выходе из неё, а та s, которую передавал не претерпит изменений.

Моя замена делает же следующее. Она копирует содержимое памяти, на которую указывает b в память, на которую указывает копия s. И после выхода из функции сама s осталась нетронутой, но память, адрес на которую мы имели внутри функции поменяла свое содержимое. Ффуууух.
 
Текущее время: 02:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru