Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача массива в функцию. В чем может біть проблема?

9.0K
13 марта 2007 года
ZhekkA
36 / / 28.10.2005
Народ! Кто может объяснить?
Почему
Код:
s[0] = 'S';
s[1] = 'T';
s[2] = 'R';
s[3] = 'O';
s[4] = 'K';
s[5] = 'A';
s[6] = '\n';
s[7] = '\0';
while(*s) {
    putchar(*s);
    s++;
}

работает, а
 
Код:
void putstr(char *s)
{
    while(*s) {
        putchar(*s);
        s++;
    }
}
...
putstr("STROKA\n");

не работает?

Почему сам описываю ф-ю вывода строки - не спрашивать. Так надо.
242
13 марта 2007 года
Оlga
2.2K / / 04.02.2006
все работает, запустила и проверила. если не работает, наверно символ конца строки по умолчанию не добавляется к передаваемой строке. возможно особенности настроек/компилятора. на MSVS 6.0 все ОК.
15K
13 марта 2007 года
Sara
79 / / 04.01.2007
Я проверила - у меня тоже оба варианта работают.
1
14 марта 2007 года
kot_
7.3K / / 20.01.2000
Во первых, тему надо называть нормально. Впредь, при несоблюдении - подобные темы будут просто удалятся.
Во вторых - что конкретно у тебя не работает?
320
14 марта 2007 года
m_Valery
1.0K / / 08.01.2007
Код:
s[0] = 'S';
    s[1] = 'T';
    s[2] = 'R';
    s[3] = 'O';
    s[4] = 'K';
    s[5] = 'A';
    s[6] = '\n';
    s[7] = '\0';   
  putstr(s);//печатает
  while(*s) {
    putchar(*s);//печатает
    s++;
   }
  putstr(s);//тут уже не напечатает s = ""

Наверное у автора вот это и "не работает" ?:)
1
14 марта 2007 года
kot_
7.3K / / 20.01.2000
Во первых, внимательно стоит читать сообщения.
Во вторых, форум вроде для программистов, а не сообщество пифий, которые должны гадать - что конкретно имел ввиду конкретный автор.
В том виде в котором он приведен, код работоспособен полностью. Если конечно автор правильно вызывает объявленную функцию. Т.е.
Код:
void putstr(char *s);

....

void putstr(char *s){

 while(*s) {
        putchar(*s);
        s++;
    }
}
int main(int argc, char* argv[])
{
putstr("STROCA \n");
        return 0;
}

вполне нормально отработает.
9.0K
14 марта 2007 года
ZhekkA
36 / / 28.10.2005
Мда... Скомпилировал другим компилятором - все работает. Первым строка походу вообще не передается в функцию почему-то (как входной параметр). Это ф-я не одна такая "нерабочая" у меня. А вот возвращает строку нормально (как выходной параметр)...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог