Мой код здесь-Зачем нужна ошибка NZEC?
void input(char* m)
{
char ch;
do
{
ch=getchar();
}
while(ch=='\n');
int i=0;
while(ch!='\n')
{
m[i++]=ch;
ch=getchar();
}
}
дает ошибку NZEC. Тем не менее, если ограничить вход с характером рассчитывать Len, такие как this-
void input(char* m, int len)
{
char ch;
do
{
ch=getchar();
}
while(ch=='\n');
int i=0;
while(ch!='\n'&&i<len-1)
{
m[i++]=ch;
ch=getchar();
}
}
она проходит вдоль штрафа. Почему это?
значение строки, как известно заранее. Он не будет превышать буфер. Но я хотел бы знать, как добавить параметр длины, чтобы избежать ошибки во время выполнения? Их все еще может быть переполнение буфера. – goelakash
Потому что в параметре длины вы передаете максимальную длину своего буфера, и цикл завершится, когда вы достигнете их, даже если у них все еще нет \ n. – Christophe
Теоретически параметр длины может быть произвольным. Он может значительно превышать размер буфера. Я понимаю синтаксис. – goelakash