Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/41: Рейтинг темы: голосов - 41, средняя оценка - 4.66
1 / 1 / 0
Регистрация: 21.12.2012
Сообщений: 19

При вызове конструктора ошибка: L "Buffer is too small" & & 0

23.03.2014, 18:09. Показов 8728. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.
При вызове конструктора вылетает эта ошибка.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Student(char *n, char *s, char *p, int y, char *g)
    {
        name = new char[strlen(n)+1];
        surname = new char[strlen(s) + 1];
        patr = new char[strlen(p) + 1];
        group = new char[strlen(g) + 1];
 
        strcpy_s(name, strlen(n), n);
        strcpy_s(surname, strlen(s), s);
        strcpy_s(patr, strlen(p), p);
        strcpy_s(group, strlen(g), g);
 
        year = y;
    }
Как это исправить?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2014, 18:09
Ответы с готовыми решениями:

Strcpy_s выдает ошибку L Buffer is too small & & 0
strcpy_s выдает ошибку L Buffer is too small & & 0 22 строка #include <iostream> #include <clocale> #include <ctime> int main...

Ошибка : " L Buffer is too small & & 0"
Здравствуйте. У меня возникла странная проблема: в недалеком прошлом рабочая программа начала выдавать ошибку: " L Buffer is too small...

Expression: (L"Buffer is too small" && 0)
Где ошибка и как её исправить? #include <iostream> #include <string> using namespace std; const int Size = 5; struct...

11
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 18:12
Цитата Сообщение от NinjaNoob Посмотреть сообщение
При вызове конструктора вылетает эта ошибка.
Вызов покажите.
0
1 / 1 / 0
Регистрация: 21.12.2012
Сообщений: 19
23.03.2014, 18:16  [ТС]
C++
1
Student B("Иванов", "Иван", "Иванович", 1993, "АНТ21");
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 18:39
C++
1
strcpy_s(name, strlen(n) + 1, n);
1
1 / 1 / 0
Регистрация: 21.12.2012
Сообщений: 19
23.03.2014, 19:10  [ТС]
Спасибо, помогло!
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 19:12
Цитата Сообщение от NinjaNoob Посмотреть сообщение
Спасибо, помогло!
Зачем вам эти заморочки microsoft? Есть же стандартные функции.
0
1 / 1 / 0
Регистрация: 21.12.2012
Сообщений: 19
23.03.2014, 19:23  [ТС]
Имеете ввиду <string> ?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 19:29
Цитата Сообщение от NinjaNoob Посмотреть сообщение
Имеете ввиду <string> ?
Имею ввиду strcpy_s().

Добавлено через 2 минуты
Стандарт:
http://www.cplusplus.com/refer... ?kw=strcpy
http://www.cplusplus.com/refer... g/strncpy/
0
1 / 1 / 0
Регистрация: 21.12.2012
Сообщений: 19
23.03.2014, 19:31  [ТС]
студия не дает использовать обычную strcpy. заставляет использовать strcpy_s, которая уже с тремя параметрами
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2014, 19:39
Цитата Сообщение от NinjaNoob Посмотреть сообщение
студия не дает использовать обычную strcpy
Смотря какая студия (до 10-й включительно - даёт). А если не даёт (паранойя microsoft), то можно сделать, чтобы давала:
https://www.cyberforum.ru/post5488517.html
1
2 / 2 / 0
Регистрация: 12.03.2015
Сообщений: 24
29.06.2016, 07:50
При использовании strcpy строка может выйти за пределы выделенной памяти, лучше использовать strncpy.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
29.06.2016, 08:05
Цитата Сообщение от alsav22 Посмотреть сообщение
паранойя microsoft
Из стандарта C11:
Traditionally, the C Library has contained many functions that trust the programmer to provide output character arrays big enough to hold the result being produced. Not only do these functions not check that the arrays are big enough, they frequently lack the information needed to perform such checks. While it is possible to write safe, robust, and error-free code using the existing library, the library tends to promote programming styles that lead to mysterious failures if a result is too big for the provided array.

A common programming style is to declare character arrays large enough to handle most practical cases. However, if these arrays are not large enough to handle the resulting strings, data can be written past the end of the array overwriting other data and program structures. The program never gets any indication that a problem exists, and so never has a chance to recover or to fail gracefully.

Worse, this style of programming has compromised the security of computers and networks. Buffer overflows can often be exploited to run arbitrary code with the permissions of the vulnerable (defective) program.

If the programmer writes runtime checks to verify lengths before calling library functions, then those runtime checks frequently duplicate work done inside the library functions, which discover string lengths as a side effect of doing their job.

This annex provides alternative library functions that promote safer, more secure programming. The alternative functions verify that output buffers are large enough for the intended result and return a failure indicator if they are not. Data is never written past the end of an array. All string results are null terminated.

This annex also addresses another problem that complicates writing robust code:
functions that are not reentrant because they return pointers to static objects owned by the function. Such functions can be troublesome since a previously returned result can change if the function is called again, perhaps by another thread.
Также есть описание этих функций (_s).
Конечно, там написано, что реализация оставляет
за собой право решить предоставлять эти функции или нет.
В случае, если данные функции предоставляются, макрос
_ _STDC_WANT_LIB_EXT1_ _ ставится в 1, если нет, то в 0.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2016, 08:05
Помогаю со студенческими работами здесь

query='SELECT * FROM resume WHERE ' & ''' & RecSet('place')& ''' & '=' & '''& s_loc &''' & - что не так?
упростил для краткости запрос. в чем ошибка? RecSet - это коннекшн. query='SELECT * FROM resume WHERE ' &amp; ''' &amp;...

error '80020009' &Icirc;&oslash;&egrave;&aacute;&ecirc;&agrave;. /lalala/profile.asp, line 28
При простейшем и сто раз работавшем скрипте, вылетает ошибка! след. содержания error '80020009' ...

Помогите найти драйвера для pci\ven_8086&DEV_266E&SUBSYS_A002145&REV_05\3&13C0B0C5&0&F2
pci\ven_8086&amp;DEV_266E&amp;SUBSYS_A002145&amp;REV_05\3&amp;13C0B0C5&amp;0&amp;F2 Мультимедиа аудиоконтроллер помогите плз найти...

Нужен драйвера, код PCI\VEN_1039&DEV_7012&SUBSYS_0C98105B&REV_A0\3&B1BFB68&0&17
всем привет !! уменя нет звука нужен драйвер код PCI\VEN_1039&amp;DEV_7012&amp;SUBSYS_0C98105B&amp;REV_A0\3&amp;B1BFB68&amp;0&amp;17 скачал прогу их много ...

Мультимедиа контролер PCI\VEN_14F1&DEV_8800&SUBSYS_EA3D14F1&REV_05\4&25700A26&0&3020
Помогите пожалуйста найти драйвер на мультимедиа видеоконтролер ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru