• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Char*. как определить размер строки.

  • Автор темы Автор темы mibin
  • Дата начала Дата начала
M

mibin

Добрый день!
Вопрос вроде бы на первый взгляд простой, но ответ на него найти не получается.
Как определить разме строки?

Результат ниже приведенного кода:
Код:
[MAIN] Size of string = 4
[PROC] Size of string = 4

C++:
#include <stdio.h>
#include <iostream.h>
 
void proc(char* ch) {
	cout << "[PROC] Size of string = " << sizeof(ch) << endl;
}
 
void main() {
	char* ch = "Hello my dear world!";
 
	cout << "[MAIN] Size of string = " << sizeof(ch) << endl;
	proc(ch);
}
 
Подключи модуль обработки Си-строк (char*) и вызови функцию strlen:
C++:
#include <string.h>
// ...
char *str;
// ...
cout << strlen(str);

size, который вы пытались вызывать - это не функция, а макрос, который возвращает количество байт, занимаемое типом данных. Т.е. в данном случае видно, что элементы типа данных char* занимают на вашем компьютере 4 байта.

Тип данных char* - это указатель, который является целым неотрицательным числом. Именно поэтому там 4 байта.
C++:
size(char)
вернет единицу, т.к. один символ всегда занимает один байт
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы