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

Выделить память перед strcat - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывод столбцами http://www.cyberforum.ru/cpp-beginners/thread1103874.html
Все просто, но не соображу)) Вывожу данные через std::stringstream. Строка через табуляцию выводиться так. То есть, если строка не влазеет в поле табуляции, она переноситься как вторая табуляция. То есть примерно так. строка1 столбец1 столбец2 строка1 столбец1231 столбец2 строка1898 столбец10909 столбец Как можно вывести данные более...
C++ Как написать функцию суммирования двумерного массива, задаваемого с клавиатуры? Требуется ввести с клавиатуры массив, к примеру, 2Х3 и посчитать его сумму с помощью функции. Не могу понять, как правильно написать эту функцию, чтобы расчет был верный. #include <stdio.h> int s(int arr) { int sum=0; for(int i=0; i<2; i++) { for(int j=0; j<3; j++) { http://www.cyberforum.ru/cpp-beginners/thread1103873.html
Реализовать функцию с переменным числом параметров C++
Помогите пожалуйста. Аргументы функции: целые положительные числа. Конец ввода: -1. Возвращаемое значение: максимальное из введенных чисел
C++ Рисование в консоли (дома и дороги)
Подскажите. Есть абстрактный класс в котором я динамически выделяю память под двумерный массив. Есть пока 2 дочерних класса, которыми я рисую (1 класс рисует дороги, 2 - дома), как мне теперь отразить это в консоли?Нужен ли еще класс который наследунтся от абстрактного, а эти классы как-то возвращают то что они рисуют? Спасибо заранее.
C++ Методы и конструкторы класса http://www.cyberforum.ru/cpp-beginners/thread1103836.html
Добрый день) Предположим, имеется некоторый класс "Tfunction" представляющий математическую функцию. Интерфейс этого класса хотелось бы видеть таким: ... Tfunction g("x^3+2*x"); cout<<g(x); ... Собственно вопрос, возможно ли организовать такой интерфейс?
C++ выражение вычислить( Вычислить значение выражения. Объяснить полученные результаты. 1. Для ввода и вывода данных использовать операции >> и << и стандартные потоки cin и cout. 2. Для вычисления степени можно использовать функцию pow(x,y) из библиотечного файла math.h. n+++m m-->n n-->m подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
25.02.2014, 11:16     Выделить память перед strcat
Fene4ka_, всё таки Вам следовало тему размещать в разделе Си, раз уж стандартные классы нельзя использовать. Ограничивать размер функции кол-вом строк - это глупость (если, конечно речь не идет об удобочитаемости).
Чтобы проверять достаточно ли текущей памяти нужно передавать размер этой памяти. Мне например видится такой результирующий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// megastring - указатель на результирующую строку
// megalen - текущий размер результирующей строки
// word - добавляемое слово
size_t cat(char** megastring, size_t megalen, const char* word)
{
    size_t wlen = strlen(word) + 1;
    if ( megalen < wlen ) // слово не помещается
    {
        char* newmega = realloc(*megastring, wlen); // перевыделяем память
        if( newmega )
        {
            *megastring = newmega;
            megalen = wlen;
        }
        else
        {
            return 0; // Не удалось перевыделить память
        }
    }
    strcat(*megastring, word); // Добавляем слово
    return megalen; // Новая длина 
}
 
Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru