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

Странное поведение указателя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу для нахождения победителей соревнования http://www.cyberforum.ru/cpp-beginners/thread1086682.html
на соревнованиях по рыбной ловле победителем признается участник, вес пойманной рыбы у которого максимален . Если несколько человек поймали одинаковое количество рыбы, все они признаются...
C++ Рисование звездочками в матрице Ребят, помогите пожалуйста. Программа должна ,типо, рисовать звездочками но обязательно в матрице , а выдает билиберду помогите пожалуйста #include <iostream> #include <windows.h> #include... http://www.cyberforum.ru/cpp-beginners/thread1086678.html
C++ Понятия инкапсуляции, полиморфизма и наследования
Всем привет. Прошу прояснить для себя 3 основных свойства парадигмы ООП инкапсуляцию, наследования и полиморфизм. Я напишу своё видение и живой пример, как эта парадигма притворена в жизнь, хочу...
C++ Решение неравенства
Задание. Написать программу для решения заданной задачи. В решении обязательно предусмотреть все возможные случаи соотношения параметров задачи, в том числе и случаи, когда задача не имеет решений....
C++ Скачал прогу, хотел поставить. Прога выкинула флаг- требуется отладка с помо визуал студио http://www.cyberforum.ru/cpp-beginners/thread1086646.html
Иначе она не станет. Я согласился. Прога вызвала студию, или студия вызвалась- я не знаю. Очень прикольно и неожиданно. Только что делать? Пожалуйста разъясните!
C++ Задача с классами С++ Указать на начало списка (список-множество) Методы Найти значение в множестве ( ф-я возвращает 1,если значение найдено, и 0 - в противном случае Добавить значение в мн-во ( если знач. уже... подробнее

Показать сообщение отдельно
scrat2013
2 / 2 / 1
Регистрация: 17.10.2013
Сообщений: 33

Странное поведение указателя - C++

31.01.2014, 22:36. Просмотров 244. Ответов 4
Метки (Все метки)

Здравствуйте, наткнулся на непонятное мне поведение указателя или точнее менеджера памяти. Есть код:
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
#include <iostream>
#include <conio.h>
 
void func();
 
int *p = 0;
int *e = 0;
 
int main()
{
    func();
    std::cout << *p << '\n';
    std::cout << *p << '\n';
    getch();
}
 
void func()
{
    int a[10];
    a[3] = 35;
    p = &a[3];
    std::cout << *p << '\n';
    return;
}
По идее он должен вывести:
35
(мусор)
(мусор)

Или вылететь... Но выводится:
35
35
0

Не мог бы мне кто-нибудь объяснить почему такой вывод.
Ведь выходя из функции массив должен удалиться, а так как указатель все еще указывает на его элемент, то должен вывестись мусор.

P.S. компилятор g++, пробовал с оптимизацией кода, и без нее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru