Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.10.2018
Сообщений: 2

Две разные функции возвращают одинаковые адреса!

27.10.2018, 22:59. Показов 1269. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Написал такую "программу". Столкнулся с такой проблемой: Две функции, которые должны возвращать два разных адреса (это же две разные функции с разными переменными), возвращают одинаковые адреса! Причем если я ставлю static int yy1 при объявлении во второй функции (или первой, не важно), адреса меняются. Если ставлю static при объявлении обоих переменных, то опять одинаковые адреса возвращают функции. Что делать? Как не сталкиваться с такой проблемой? Спасибо!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int* ooo();       // объявляю первую функцию
int* naza();     // объявляю вторую
 
 
int main()
{
 
    cout <<  naza()<< endl;    // вижу одинаковые адреса двух разных функций
    cout <<  ooo()<< endl;     // и не могу понять почему
 
 
    system("pause");
    return 0;
}
 
int* naza(void) {
    int ma = 2;
    int* fa = new int;
    fa = &ma;
    return fa;
}
 
int* ooo(void) {
    int yy1 = 2;               // если поставлю static то адрес изменится
    int* loka = new int;
    loka = &yy1;
    return loka;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2018, 22:59
Ответы с готовыми решениями:

Две одинаковые функции
Всем привет! Я решил создать программу с OpenGL, подключив библиотеку glut. Затем мне понадобилась библиотека cstdlib для rand. Я подключил...

Дано натурально n-значное число. Проверить содержит ли оно две одинаковые цифры. Оформить в виде функции
Помогите решить лабораторные Дано натурально n-значное число. Проверить содержит ли оно две одинаковые цифры. Оформить в виде функции.

Почему адреса одинаковые?
Обьясните пожалуйста код, почему адреса одинаковые? #include &lt;iostream&gt; using namespace std; int main() { char *s =...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
27.10.2018, 23:06
В чём смысл этого? Зачем тебе адреса локальных переменных, которые в одном и том же стеке?
0
166 / 109 / 57
Регистрация: 30.08.2018
Сообщений: 357
27.10.2018, 23:09
Лучший ответ Сообщение было отмечено n1l0kz как решение

Решение

Цитата Сообщение от n1l0kz Посмотреть сообщение
C++
1
int* fa = new int; fa = &ma;
Это для вас wikipedia.org/wiki/Утечка_памяти
1
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
28.10.2018, 00:01
Цитата Сообщение от nmcf Посмотреть сообщение
В чём смысл этого? Зачем тебе адреса локальных переменных, которые в одном и том же стеке?
Я так понимаю, компилятор, после завершения первой ф-и, второй выделит под локальные переменные ту же область, что только что, была освобождена?
1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.10.2018, 00:02
Azazel-San, я имел в виду, зачем он такую программу сочинил?
1
28.10.2018, 00:03

Не по теме:

nmcf, дико извиняюсь мне просто интересно почему такое поведение было?)

0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.10.2018, 00:05
Потому что функции одинаковые и вызов на одном уровне. В одно и то же место стека попадает.
1
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
28.10.2018, 00:08
Цитата Сообщение от nmcf Посмотреть сообщение
Потому что функции одинаковые и вызов на одном уровне. В одно и то же место стека попадает.
Ну почти как я и написал, вроде) Спасибо за ответ.
0
0 / 0 / 0
Регистрация: 27.10.2018
Сообщений: 2
28.10.2018, 00:13  [ТС]
Просто исследую разные функции в C++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.10.2018, 00:13
Помогаю со студенческими работами здесь

Почему указатели имеют одинаковые адреса
Например, если взять указатели на массивы. **m имеет тот же адрес, что и *m, что и m

Две одинаковые функции работают по-разному. WinApi + asm
Задача: ввести строку(winapi), удалить пробелы(asm) и вывести измененную строку(без пробелов)(winapi). Почему, когда я вызываю (стр. 202)...

Lotusscript И @-формула Возвращают Разные Значения
Две кнопки в одной панели действий на одной код на скрипте: ... ses.CurrentDatabase.QueryAccessRoles(ses.username)... - нормально...

Как нарисовать две разные функции на одном графике?
У меня имеется график линий уровня, как в этой системе координат дорисовать график прямой?

Две разные функции при нажатии на одну кнопку
Здравствуйте! Суть вот в чём. Есть 1 кнопка. Если на неё 1 раз нажать появляется messageBox с текстом &quot;Первый текст&quot;. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru