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)
вернет единицу, т.к. один символ всегда занимает один байт
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!