размер чего-либо Альва ys возвращается по вызову sizeof()
. В вашем случае вы бы сделали sizeof(aValue)
, который дал бы размер этого указателя. В зависимости от того, на каком процессоре вы работаете, это даст значение, например. 4
на 32-битном процессоре, так как указатель 32 бит и, следовательно, 4 байта в размер.
Поскольку ваша реализация предполагает, что вы хотите знать, сколько символы, которые вы сохранили, где указатель указывает на то, что у вас действительно есть массив символов, а затем '\0'
характер. В C, который часто упоминается как строка.
Если вы хотите знать длину этой строки, функция strlen()
в основном делает то, что делает ваша реализация и возвращает количество символов без подсчета '\0'
символа в конце.
Итак, вы сделали свою небольшую реализацию strlen()
прямо там.
На боковой ноте: ваш код не совсем похож на обычный C, более похожий на Objective-C. Это означает, что у вас есть родной класс, который имеет дело со строками, называемыми NSString
.
NSString *temp = @"/tmp/scratch";
Это уже не просто массив символов, оканчивающихся в '\0'
характер, но собственный тип на этом языке.
Почему вы не используете функцию 'strlen'? – loentar
Это не C или C++. Это Objective-C. – Synxis
Objective-C - это расширение над C. Конечно, оно имеет «strlen». – loentar