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

Указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибки копиляции http://www.cyberforum.ru/cpp-beginners/thread325130.html
Решил изучать С++ по книге Стефана Р. Девиса "С++ для начинающих". Написал пример програмки из книги в DEV-C++. Всё написано правильно, однако при компиляции происходят ошибки, которые вы видете на...
C++ что не так с программой? С++. помогите, пожалуйста, завтра сдавать уже! при компиляции виснет. Задание такое: в матрице найти 1) максимум среди сумм диагоналей, параллельных побочной 2) произведение в тех строках, где нет... http://www.cyberforum.ru/cpp-beginners/thread325129.html
Ошибка в строке file.write C++
Помогите разобраться с записью file.write (49строчка) в чем ошибка??? #include <iostream> #include <fstream> #include <stdlib.h> #include <locale> #include <iterator> #include <conio.h>...
C++ Написать программу, которая по номеру месяца выдает название следующего за ним месяца (при т = 1 получаем февраль, 4 - май и т.д.).
Написать программу, которая по номеру месяца выдает название следующего за ним месяца (при т = 1 получаем февраль, 4 - май и т.д.). Решить задачу в VC++.
C++ Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора http://www.cyberforum.ru/cpp-beginners/thread325098.html
Есть задача Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора (в том же порядке). ...
C++ Из массива A сформировать массив B Пожалуйста кто может помогите! В субботу экзамен - нужен допуск... а я не знаю как справиться с этой задачей((( уже не знаю к кому обратиться(( Задача в с++ "Для заданного массива A из M чисел... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.06.2011, 20:45
Hagrael, ваши предположения не верны, ничего никуда автоматически не подставляется. И, ещё раз, звёздочка при объявлении относится к типу, а не к переменной, так что ваше *p = &a; в принципе не верно, даже если забыть про то, что тип надо указывать. Выражение int *p = &a; нужно читать как (int *)p = &a; (скобки для понятности). Т.е. вот это int * и есть ваш тип pointer. А если писать p = &a;, как компилятор поймёт, что мы хотим работать с p как с указателем, а не как просто с целым числом? Конечно, он мог бы предположить что-то, но его предположение могло бы оказаться неверным. Указывая же тип явно, мы сообщаем, что переменная p является указателем на тип int (int *), и компилятор всё обработает верно.

Цитата Сообщение от Hagrael Посмотреть сообщение
Вы имеете в виду, что выделенная память - это память, которая выделена для приложения или память, выделенная под переменные?
Тут ещё смотря про какое выделение речь. Под автоматические и статические переменные (переменные, выделенные на стеке) выделяется столько памяти, сколько нужно. Под динамические вы сами решаете, сколько памяти выделять. А вот такое (int *p = 12345; ) обращение к случайному блоку памяти могло попасть на какие-то критические для программы участи, и если их, например, затереть - программа покрашится. Короче говоря, свободно манипулировать можно только той памятью, для которой заведомо известно, что она предоставлена именно для таких манипуляций.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru