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

С++ VLA и прочее... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверка на введенное число http://www.cyberforum.ru/cpp-beginners/thread717276.html
Здравствуйте. Как проверить что было введено число а не что то другое. Например я написал подпрограмму, которая проверяет что было введено целое число. long Check(char *message){ bool stop; char str; int x; do{ system("cls"); stop = false; cout << message;
C++ Обработка символьной строки Не могу справиться с этими задачами :( 2)Задать символьную строку, состоящую из слов. Слова разделены группой пробелов. Исходную строку символов ввести с экрана. Выполнить обработку по варианту. Исходную строку и результат вывести на экран . Подпрограмму обработки строки следует оформить в виде функции. При необходимости отдельные действия для обработки строки также следует оформить как... http://www.cyberforum.ru/cpp-beginners/thread717248.html
Обработка двумерного массива C++
Не могу справиться с этими задачами :( 1)Создать программу, позволяющую задать двумерный массив, содержащий вещественные числа. Выполнить обработку по варианту. Исходный массив и результаты вывести на экран или во внешний файл. Двумерный массив выводить в виде таблицы. Сам исходный массив задать инициализацией или генератором случайных чисел, или читать из внешнего файла....
C++ Как написать тест-программу?
Помогите, пожалуйста. Мне необходимо написать тест-программу для класса Adminictrator. //This is the interface for the class SalariedEmployee. #ifndef SALARIEDEMPLOYEE_H #define SALARIEDEMPLOYEE_H #include <string> #include "employee.h"
C++ Подсчитывание начения арифметического выражения (Улучшить программу) http://www.cyberforum.ru/cpp-beginners/thread717229.html
Доброго времени суток. Нужно написать программу, подсчитывающую значение арифметического выражения( входят натуральные числа, +, *, круглые скобки). Вот код: //Грамматика: //<Выражение> ::= <слагаемое> {+ <слагаемое>} //<Слагаемое> ::= <множитель> {* <множитель>} //<Множитель> ::= <число> | (<выражение>) #include <iostream> using namespace std; typedef char TLexem; const char _Num = '1',
C++ Динамические одномерные масивы Не могу создать новый размер динамического массива. Статический работает как надо (мусор присутствует только в начале), а динамический нет (он такое впечатление вовсе не массив), в чем дело не пойму. Помогите, пожалуйста, а то уже по-всякому пробовал:help:. Фрагмент... int *A, B, k = 0; for(int i = 0; i < 15; i++) { k++; A = new int; B = A... подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,268
01.12.2012, 10:59     С++ VLA и прочее...
Цитата Сообщение от alsav22 Посмотреть сообщение
Обрати внимание, нигде не упоминается ни вход в main(), ни начало main(). А о том как понимать, например, начало работы main() можно спорить до бесконечности. Ты будешь говорить, что вход в main() и есть начало работы main(), другой будет доказывать, что начало работы - это выполнение первой прописаной в main() инструкции, третий ещё что-нибудь.
для того, чтобы узнать адрес функции, есть такой код:
C++
1
2
3
4
5
6
7
#include <stdio.h>
int main()
{
    printf ("%x\n", main);
    getchar ();
    return 0;
}
. Это адрес функции или, что то же самое, её начало. Адрес первой АССЕМБЛЕРНОЙ инструкции, если угодно. Я не буду спорить если кто-то скажет что нет, не это начало, на фиг надо нервы трепать.
...Кстати, да, вот тут Evg договорился до начала main. Видишь, я тоже поднимал (и поднимаю) подобные вопросы
Почему глобальный объект, объявленный до main, конструируется в ней?


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Цитата Сообщение от alsav22 Посмотреть сообщение
Если я правильно понял (если нет - поправь), то выделение памяти происходит при входе в main(), но до выполнения первой инструкции прописанной в main() в коде.
Нет. Мы входим в функцию main, мы никак не можем миновать первую инструкцию. Вот здесь чётко показано, вот функция main, она ограничена слева жирной скобкой.
http://www.cyberforum.ru/attachment....8&d=1354307130


1) Первая инструкция main Это PUSH EBP (подсвечена)
2) блаблабла
3) Инструкция, которая выделяет память SUB ESP, 34
4) блаблабла
5) Инструкция, которая кладёт в выделеную память строку "rrrrr....."REP MOVS BYTE блаблабла

Цитата Сообщение от alsav22 Посмотреть сообщение
Нет. Получается, что локальный массив, объявленный в main(), ничем не отличается от динамического. И размер ему можно задавать во время выполнения программы, и жить он будет до конца программы, только память под ним нельзя освободить.
Так и получается. Это скорее хорошо, чем плохо. Вот тут MrGluck попытался это объяснить
Порекомендуйте компилятор

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

На счёт всего остального- я не знаю что и сказать. Все пишут как "должно быть", но преподносят это "как есть". А его нет, сам же видел, оно просто должно быть. С другой стороны если по стандарту описано, что для "нединамических" массивов память должна быть известна заранее, авторы так и напишут, согласен? Вот и всё.
И кстати, тот же Стивен Прата (в той же книге "Статический класс памяти, внешнее связывание", таблица 9.1) определяет "статический" класс памяти не как "нединамический", а как либо объявленый с ключевым словом static, либо как объявленный вне функции, это то, о чём я написал в предыдущем посту и это то, чему не соответствует твоя цитата.
Порекомендуйте компилятор
Кто прав в этом случае я решил для себя. По-моему Прата убедительнее.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Как видишь, есть противоречия между всем и всем. Но что делать? Надо двигаться вперёд; где-то напролом, где-то как. Периодически возвращаясь к этому нерешённому вопросу, коих будет ещё очень много. Однажды решишь эти вопросы не абсолютно, но ДЛЯ СЕБЯ и скажешь:

"Колея это только моя, выбирайтесь своей колеёй".
В. Высоцкий.
 
Текущее время: 18:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru