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

Работа с массивом с через strcpy_s() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как узнать зависимость DLL-ки от других DLL-ек? http://www.cyberforum.ru/cpp-beginners/thread1498567.html
Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно тулфейн свого компилятора и тд. Есть какая - то утилитка, чтоб зависимости посмотреть? ОС: Винда Есть Dependency Walker, но он для PE файлов.
SFML Код инициализации OpenGL в составе библиотеки SFML 2.1 Подскажите пожалуйста код инициализации OpenGL(OpenGL.hpp) в составе библиотеки SFML 2.1. http://www.cyberforum.ru/cpp-beginners/thread1498522.html
Как передать адрес объекта через функцию C++
Здравствуйте! Надеюсь я правильно сформулировал вопрос, хотелось бы узнать как такое реализовать: //Есть функция с таким типом параметра ID3D11Buffer* const* ppObjectName // Если писать так, то работает Fun(&obj); // А если писать так, то не не работает Fun(&GetObj()); .... ID3D11Buffer* GetObj()
C++ Подключение в одном решении 2 проектов
В общем я не так давно начал самостоятельно изучать плюсы, как оказалось простые универские программы не особо помогают). Сделал несложную игру змейку в cpp файле и захотел сделать для нее меню. Простое меню с кнопкой старт и выключить. Так чтобы при нажатии на старт открывалось новое окно с игрой. Я правильно понял, что меню можно сделать через формы? я набросал кнопки в окно, но не знаю, как к...
C++ Ошибка в std::copy не ясна http://www.cyberforum.ru/cpp-beginners/thread1498477.html
здравствуйте, есть следующий код, в котором возникает ошибка во время выполнения: std::string array1 = { "hello", "hello", "hello", "hello", "hello" }; std::string* arrayptr1 = static_cast<std::string*>(::operator new(10*sizeof(std::string))); std::copy(array1, array1+5, arrayptr1); притом если заменить std::string на int например, то будет все работать. помогите...
C++ To_string эквивалент http://www.cplusplus.com/reference/string/to_string/ это из С++ 11. У меня вс 2010, очевидно стандарт ниже. Из этого кода: string str; for(int i=1;i<6;++i) str.push_back(i); подробнее

Показать сообщение отдельно
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
14.07.2015, 11:22     Работа с массивом с через strcpy_s()
Функция addBrackets принимает массив и преобразует его заключая в скобки [].
т.е. на на вход массив: text
после преобразования: [text]
Вылетает эксепшен "boffer is too small" на первом strcat. Что не так делаю?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
void addBrackets(char* buffer)
{
    char *result = new char[strlen(buffer)];
    result[0] = NULL;
 
    strcat_s(result, strlen("["), (const char *)"[");
    strcat_s(result, strlen(buffer), (const char *)buffer);
    strcat_s(result, strlen("]"), (const char *)"]");
 
    strcat_s(buffer, strlen(result), result);
 
    delete []result;
}
 
int main()
{
    const int len = 10;
    char str1[len];
    str1[0] = NULL;
 
    strcat_s(str1, (const char *)"text");
    if (strlen(str1) < len - 2)
    {
        addBrackets(str1);
        std::cout << str1 << std::endl;
    }
 
    return 0;
}
Добавлено через 21 минуту
Достаточно просто пояснить почему вот это не работает:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main()
{
    char *str1 = new char[100];
 
    strcpy_s(str1, strlen("text"),"text");
 
    delete[]str1;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru