powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Объясните строку кода C++
9 сообщений из 9, страница 1 из 1
Объясните строку кода C++
    #38849182
denisknn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функции передаются параметры:
data строка символов (например из 121 символа);
datalen длина этой строки (121).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
int function(unsigned char *data, int datalen, unsigned char *out) {
	unsigned char	*p,
			*l;
	p = data;
	l = data + datalen;
	while (p < l) {
		// какой-то код
	}


Я в С++ не разбираюсь и не могу понять как можно сложить строку и число?
При дебаге в Visual Studio переменная l приобретает значение 0x0048a254 "ээээ««««««««"
Так потом еще и сравнивается строка p с получившейся l
Как это понимать по-русски? Желательно на php.
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849200
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisknndata строка символов (например из 121 символа);
Неправильно. Передаётся не строка, а указатель. И не на символы, а на байты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849201
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При сложении указателя на char с числом типа int происходит увеличение указателя на int * 4 байтов.

Чтобы это понять - надо признать факт того что в данном коде нет никаких строк. Есть ASCIIZ-векторы символов
которые как-бы эмулируют поведение строк. Но самих строк нет.

По смыслу данный код похож на функцию strncpy хотя точно
сказать невозможно т.к. приведён огрызок кода.

На PHP ничего приводить не нужно!

В данном форуме мы не обсуждаем вопросы PHP. Но топик по просьбе можно перебросить в под-форум PHP
и обсуждать там.
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849205
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denisknn,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
int function(unsigned char *data, int datalen, unsigned char *out) {
	unsigned char	*position,
			*end;
	position = data;
	end = data + datalen;
	while (position < end) {
		// какой-то код
	}

а так понятней? ))
и unsigned char * - это не строка, конечно же
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849216
denisknn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Не в ту сторону я думал. Недопонимаю я пока си. Буду думать дальше.
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849222
denisknn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych, так действительно понятнее стало. Спасибо большое. Сам бы не додумался.
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849369
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПри сложении указателя на char с числом типа int происходит увеличение указателя на int * 4 байтов.
Сразу видно - праздники удались ))
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849370
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
char сдвигают на sizeof(int), кто-то ещё отмечает праздники :D
...
Рейтинг: 0 / 0
Объясните строку кода C++
    #38849510
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно. Удались. char/int/водка/пиво. Всё смешал.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Объясните строку кода C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]