![]() |
возвращение строки
есть функция, которая возращает строку
Код:
char* f()А мне нужно от sizeof(str) получить 10 байт (строка "helloworld" = 10 байтам) Конечно можно воспользоватся strlen, скажете вы, но этот способ мне не подходит потому-что strlen как я понял игнорирует символы типа 0x00 и тд, а мне это очень важно. Тоесть вывод такого будет 0 (а sizeof() = 2) Код:
char str[] = {0x00, 0x00};UPD Я замутил так: Код:
char* f(int &size) |
Вот блин только хотел сказать тебе как сделать как ты уже сам догадался ) :cool:
|
бугага. давно пора знать что char *str - это указатель. а указатель любого типа int char и тд всегда имеет размер 4 байт. физически указатель - это переменная, хранящая в своих 4 байтах адрес реального элемента в 32х разрядном адресном пространстве. (иа64 не трогаю пока =))
char *sPtr; char sArray[] = "Hello"; sPtr = (char*)malloc(1024); // выделение 1024 байт и запись в sPtr адреса начала 1024 байтного блока в адресном пространстве. sizeof(sArray) = 6 ( 5+NULL char) sizeof(sPtr) = 4 ахтунг!) |
| Время: 21:52 |