Форум программистов, компьютерный форум 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,271
30.11.2012, 12:11     С++ VLA и прочее...
Цитата Сообщение от alsav22 Посмотреть сообщение
Размер статического массива должен быть известен на момент компиляции. Иначе, как под него память выделять?
А как вообще память под массивы выделяется? Мне кажется функция начинает работать и только тогда выделяется память под массив в стеке. Скорее всего просто указатель на верхушку стека просто-напросто уменьшается на нужное количество байт (в данном случае на m байт). Всё память выделена. ВО ВРЕМЯ РАБОТЫ ФУНКЦИИ main. Проверить так это ли нет- в отладчике сложно. Но можно в том же отладчике посмотреть, откуда функция берёт элементы массива (хотя тут m известно на начало работы, но это не главное, главное, ГДЕ ВЫДЕЛЯЕТСЯ ПАМЯТЬ ПОД МАССИВ)

C++
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
    int m= 0X100;
    int arr[m];
    printf ("%d\n", arr [0]); 
    return 0;
}
А выделяется она в стеке; и она может выделиться так, а может выделиться эдак. Отсюда вывод: выделяется она во время работы функции. И следующий вывод: поэтому ничто (кроме больших размеров) не мешает тому, чтобы размер массива (величина стека, выделенного под него) был определён во время работы функции.

Цитата Сообщение от alsav22 Посмотреть сообщение
Особенно начинающему... Научи, где что писать.
Я уже научил. Уже можно по тому, что я сказал, найти настройки компилятора и место, где прописывать опции, DEV компактна довольна. Там негде особо блудить.
И ещё научу, надо будет. Скажем так: и там и там начинающий сталкивается с определёнными трудностями. Так по мне пусть он лучше некорректным кодом пропишет память (а рано или поздно он всё равно это сделает) и научится, как этого избегать (твой первый код), чем увидит чудо-юдо-рыбу-кит например: strcpy_s, которая ни в одном учебнике по C не упоминается.

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