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

Выделение памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица, ручной ввод элементов http://www.cyberforum.ru/cpp-beginners/thread586887.html
Ещё раз здравствуйте. Встала такая проблема, не получается переделать рандомное заполнение матрицы на ручное. Помогите, либо отошлите в тему, где это подробно описано) #include "iostream" #include "ctime" #include "stdlib.h" using namespace std; class Matrix {
C++ Сумма ряда Ребята.помогите доработать прогу,не получается.. ((( Добавлено через 18 минут Вычислить сумму ряда (-1)^K/K^k #include<iostream.h> #include<math.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> http://www.cyberforum.ru/cpp-beginners/thread586885.html
C++ Матрица. Переделать из Delphi в С++
Дана целочисленная квадратная матрица. Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Есть код для Delphi, нужно эту же программку в C++. Помогите пожалуйста.. program Project1; {$APPTYPE CONSOLE} uses SysUtils; const n=3;
Несколько слов об инклудах и других C++
Вот почему некоторые пишут некоторые инклуды в кавычках, а не в <>(хз как это называется :)). Например: #include "table.h" И вот, что означает это: #define И это:
C++ Перенос буквы слова в конец.Кто-нибудь осилит? http://www.cyberforum.ru/cpp-beginners/thread586868.html
В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 смволов, перенести первую букву каждого слова в его конец. Отсортировать строки в порядке убывания количества слов. Вывести полученный текст на экран. Выведенную информацию продублировать в текстовый файл, имя которого задаёт пользователь
C++ Сложное присваивание переменной Есть следующее присваивание: char abc = "function CHAR is easy" На месте CHAR Должно ставится значение этой переменной (CHAR то есть). Как сделать такое присваивание? подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
25.05.2012, 22:25     Выделение памяти
Цитата Сообщение от h3mbr0 Посмотреть сообщение
Во первых: на что указывает указатель, при записи
C++
1
char* s="abc";
Компилятор позаботится, чтобы строка "abc" оказалась размешена где-нибудь в доступной памяти. Но компилятор вправе разместить её в месте, доступном только для чтения, поэтому не только писать по этому указателю нельзя, но и само такое присваивание является устаревшим. Правильно записывать так:
C++
1
char const* s = "abc";
То есть указатель ссылается на константное, неизменяемое значение.
Цитата Сообщение от h3mbr0 Посмотреть сообщение
Во вторых: чем отличается к примеру
C++
1
char* s=new int;
от
C++
1
char* n=(char*)malloc(sizeof(char));
Первое есть только в C++, второе унаследовано из Си. Необходимость new вызвана тем, что при создании объектов должен быть автоматически вызван конструктор объекта. Для простых типов это не важно, хотя формальный конструктор есть и для них. Ну и области памяти для malloc и new используются разные.
Цитата Сообщение от h3mbr0 Посмотреть сообщение
И в третьих: почему(для чего) используется и обычный массив (к примеру char buffer[256]) и динамическая память (char* str) скажем, в одном классе. Какая разница? и почему не используется что то одно?
Статический массив имеет фиксированный размер и хранится внутри объекта. Динамический имеет переменный размер. Какой из массивов использовать зависит от того, что нужно получить. Не зная задачи трудно ответить.

Цитата Сообщение от h3mbr0 Посмотреть сообщение
Да, и вот еще: как узнать размер выделенной памяти? скажем для указателя
C++
1
char* s;
В частных случаях есть способы, которые зависят от платформы (ОС/компилятор). В общем случае — никак. И в общем случае это не нужно, программист всегда имеет возможность сохранить в отдельной переменной размер выделенной памяти и передать его куда надо.
 
Текущее время: 01:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru