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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибки копиляции http://www.cyberforum.ru/cpp-beginners/thread325130.html
Решил изучать С++ по книге Стефана Р. Девиса "С++ для начинающих". Написал пример програмки из книги в DEV-C++. Всё написано правильно, однако при компиляции происходят ошибки, которые вы видете на фото. При нажатии на первую строчку в строке ошибок ничего не происходит, а если нажать на остальные, ошибки выделяются. Подскажите пожалуйста, как их исправить. Вроде бы всё представил...
C++ что не так с программой? С++. помогите, пожалуйста, завтра сдавать уже! при компиляции виснет. Задание такое: в матрице найти 1) максимум среди сумм диагоналей, параллельных побочной 2) произведение в тех строках, где нет отрицательных элементов вот мой код: #include<iostream.h> #include<math.h> void main() 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> #include <string> #include <vector> #include <algorithm>
C++ Написать программу, которая по номеру месяца выдает название следующего за ним месяца (при т = 1 получаем февраль, 4 - май и т.д.).
Написать программу, которая по номеру месяца выдает название следующего за ним месяца (при т = 1 получаем февраль, 4 - май и т.д.). Решить задачу в VC++.
C++ Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора http://www.cyberforum.ru/cpp-beginners/thread325098.html
Есть задача Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора (в том же порядке). предположим M=3 N=3 матрица но что значит набор из М чисел? исходя из логики матрица будет 3 3 3 3 3 3 3 3 3 та чтоли?
C++ Из массива A сформировать массив B Пожалуйста кто может помогите! В субботу экзамен - нужен допуск... а я не знаю как справиться с этой задачей((( уже не знаю к кому обратиться(( Задача в с++ "Для заданного массива A из M чисел сформируйте массив В из M/2 чисел по формуле: B(i) = (A(i) + A(M + 1 - i))/2. Предусмотрите случай когда M нечетно. " подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
25.06.2011, 15:38     Указатели
Цитата Сообщение от Hagrael Посмотреть сообщение
Физическая память - память, работа с которой ведется исключительно на аппаратном уровне, программы и не знают, что это такое. Она имеет адрес - номер (вот только в байтах или в битах?). А виртуальная память - память, с которой работают программы. По поводу второй мне не очень понятно, что она из себя представляет. Вот физическая память - это биты в ОЗУ, а виртуальная - это что?
Память адресуется по байтам, каждый из которых состоит из 8 бит. На счёт виртуальной памяти - вот схема.

Цитата Сообщение от Hagrael Посмотреть сообщение
Стоп. А как может быть адрес переменной не известен на этапе компиляции?
Если вы динамически выдеяете массив (new, malloc), то размер всего массива может быть заранее неизвестен. Известен только размер элемента массива.

Цитата Сообщение от Hagrael Посмотреть сообщение
Но мне не до конца понятно вот что: в коде откомпилированного файла не хранится точный адрес переменной, по которому ее надо записать. Ведь если так будет, то по этому адресу может находиться другая переменная, и возникнет конфликт.
Компилятор-то имеет список всех переменных. Он генерирует код, который разместит их в разных местах. Да и операционка тоже не без мозгов, двум программам одну страницу памяти не отдаст.

Цитата Сообщение от Hagrael Посмотреть сообщение
Кст., в указателе, как я понимаю, хранится виртуальный адрес, да?
Да, с точки зрения программы её память непрерывна, и адреса виртуального пространства далеко не всегда соответствуют адресам реального. Более того, долго не используемая память может сбрасываться в дисковый своп (swap, терминами винды - файл подкачки). При попытке обращения к области (виртуальной) памяти, которая реально была сброшена в своп, происходит загрузка её из свопа в оперативку. Если оперативка забита, то места для загрузки этой памяти может не быть, и тогда в своп перед этим будет сброшена страница, к которой дольше всех не было обращения. Но программа этого не видит, для неё виртуальная память как была единой так и осталась. Посмотрите схему, которую я привёл выше.

Цитата Сообщение от Hagrael Посмотреть сообщение
На этапе компиляции переменные являются указателями?
Нет, но они ведь размещаются в разных местах в памяти, иначе бы они затирали друг друга. По-этому и адрес у них разный.
 
Текущее время: 13:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru