Форум программистов, компьютерный форум CyberForum.ru

длина C-троки - C++

Восстановить пароль Регистрация
 
Feuer
72 / 72 / 7
Регистрация: 13.10.2008
Сообщений: 144
16.11.2008, 02:14     длина C-троки #1
Столкнулся с такой проблемой: при передаче функции char-массива и нахождения его размера в этой функции результат получается равным 4...
вот пример:
Код
void f(char *);
void main(){
    char str[61];
    int length = sizeof(str)/sizeof(char);
    cout<<"length in main = "<<length;
    f(str);
    
}
void f(char *str){
    int length = sizeof(str)/sizeof(char);
    cout<<"\nlength in f = "<<length;
}
генерирует:
length in main = 61
length in main = 4
Я понимаю, что просто чего-то не знаю... подскажите, пожалуйста, чего именно?..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2008, 02:14     длина C-троки
Посмотрите здесь:

длина массива C++
C++ длина вектора
C++ троки в С++, Как сделать чтобы прога определяла слова-палиндромы?
Длина файла C++
Длина отрезков C++
Длина вектора C++
C++ Длина Ломаной
Длина массива C++
C++ Длина слова
длина вектора C++
C++ Длина строки
C++ длина строки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
16.11.2008, 03:32     длина C-троки #2
в ф-ии f у str тип char *,что есть 32-битный указатель,что есть 4 байта.
В ф-ии мейн у str тип char[61]; при передаче параметра происходит переобразование типов(в общем,передается указатель). Соль в том,что мэйн обладает большей информацией ( уже на стадии компиляции) о переменной str. И не стесняется эту инфу использовать. А f - более универсальна,работает с указателем на тип char,а что уж там...на стадии компиляции она не знает,а sizeof подставляется как раз на стадии компиляции.
Feuer
72 / 72 / 7
Регистрация: 13.10.2008
Сообщений: 144
16.11.2008, 16:01  [ТС]     длина C-троки #3
XuTPbIu_MuHTAu, спасибо!
Yandex
Объявления
16.11.2008, 16:01     длина C-троки
Ответ Создать тему
Опции темы

Текущее время: 15:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru