Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Программа вылетает с ошибкой.

Автор: zloy_pes 27.10.2006 0:20

Помогите пожалуйста найти ошибку. Программа выдает ошибку (General Protection fault), если ввожу более 4 символов.

void main(){char *s;gets(s);
for(int i=0;s[i];i++){printf("%c",s[i]);}}
Заранее Спасибо.

Автор: volvo 27.10.2006 0:25

Правильно... Ты отводишь место под указатель на строку, sizeof которого = 4... Выдели буфер:

int main() {  // Стандарт требует int
char s[50]; gets(s);
for(int i=0;s[i];i++){printf("%c",s[i]);}

return 0; // И это тоже - требование Стандарта
}

Автор: zloy_pes 27.10.2006 0:29

Оу... Спасибо... Не учел.