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

Пишем аллокатор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти все совершенные числа от M до N http://www.cyberforum.ru/cpp-beginners/thread1237721.html
Совершенные числа (Время: 1 сек. Память: 16 Мб ) Число называется совершенным, если оно равно сумме всех своих делителей, меньших его самого. Требуется найти все совершенные числа от M до N. Входные данные Входной файл INPUT.TXT содержит числа M и N, разделенные пробелом. (1 <= M <= N <= 5*1018) Выходные данные
C++ Не работают проекты. Ошибка "Tracker.exe is missing" в vs 2012 все проекты не работают из-за ошибки (Ошибка 1 error : Required file "tracker.exe" is missing. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets 347 5 greg) в проекте всего один файл(gferg.cpp), пустой проект, настройки проекта и студии не менял, не работает ни один проект, в чём проблема? #include <iostream> using namespace std; int main() {... http://www.cyberforum.ru/cpp-beginners/thread1237707.html
C++ Как экспортировать интерфейс из dll
делал всё по примеру в инете, не работает код интерфейса struct I_MyInterface { virtual bool Init(int parms)=0; virtual bool Release()=0; virtual void DoStuff() =0; };
C++ Настройка debugger'a в codeblocks
Когда я ставлю брекпоинт и нажимаю на кнопку "debug" компилятор не останавливается на брекпоинте, а просто выполняет программу. Подскажите, что не так?
C++ Перегрузка оператора + http://www.cyberforum.ru/cpp-beginners/thread1237651.html
не получается в своем классе перегрузить оператор + :( пишет "error C2804: бинарный "operator +" имеет слишком много параметров", действительно задал 2 параметра, но как еще то? ведь + и подразумевает собой сложение 2х значений...
C++ Как грамотно подключать заголовочные файлы? Как грамотно подключать заголовочные файлы? Можно ли их все собрать в stdafx.h а потом инклюдить там где они мне нужны? А то сейчас получается, в одном .h объявил переменную с типом класса который описан в другом .h и посыпались ошибки. подробнее

Показать сообщение отдельно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
03.08.2014, 08:02     Пишем аллокатор
Цитата Сообщение от GetHelp Посмотреть сообщение
указатели ведь это же УКАЗАТЕЛИ !!! они не могут быть валидными только в пределах функции ! это же не обычная переменная...
не поверишь, это банальная обычная переменная
только тип у неё указатель
смотри
C++
1
2
3
4
5
6
7
8
void func(int *B)
{
 B=0x10;
} 
 
...........................
int * A=0;
 func(A);
объявили указатель в локальной области ,обнулили, передали в функцию копию указателя, копия изменила свое значение, и при выходе из функции благополучно забылась, а сама перемененная осталось неизменной
следовательно нужно в функцию или передавать адрес
C++
1
2
3
4
5
6
7
8
void func(int **B)
{
 *B=0x10;
} 
 
...........................
int * A=0;
 func(&A);
или возвращать значение
C++
1
2
3
4
5
6
7
8
9
int* func(int *B)
{
 B=0x10;
return B;
} 
 
...........................
int * A=0;
 A=func(A);
в общем это трудно только на таком уровне абстракции
а если спустится на уровень ассемблера, все становится очевидным
Assembler
1
2
3
mov A,0;  обнулили переменную 
push A; предали функции, положили в стек
call func; функция будет работать со значением из стека не затрагивая значения A
 
Текущее время: 04:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru