Вход на сайт
Работа, ЯП и ООП
2729 просмотров
Перейти к просмотру всей ветки
в ответ uscheswoi_82 16.06.24 11:42
Если чего-то нет, то приходится какие-то костыли писать. В Си++ опасно костыли писать т.е. переходить с Си++ на Си, т.к. там работаешь с Сишными типами данных, а это опасно, есть так скажем переполнение буфера см. http://www.freebsd.org.ru/developers-handbook/x1169.html, вот например переполнение буфера:
char buf[512]; HWND hwndField1; ... GetWindowText(hwndField, buf, GetWindowTextLength(hwndField));
Чтобы не было переполнения буфера то делаем так:
char *buf; HWND hwndField1; ... buf = (char *)malloc(GetWindowTextLength(hwndField)+1); GetWindowText(hwndField, buf, GetWindowTextLength(hwndField));
Но нужно память освобождать т.е. написать free, иначе будет утечка памяти см. https://habr.com/ru/companies/piter/articles/432072/:
free(buf);
Для этого наверное Си++ и придумали, чтобы не морочить голову программисту с переполнением буфера и утечкой памяти.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение