繁体   English   中英

C程序冻结的单词长度大于6

[英]C program freezes for word lengths greater than 6

我正在研究K&R的第一章,并完成了本练习,在该练习中您应该为某些输入创建单词长度的直方图。 我首先尝试使用while循环来创建最长的单词组成的零数组,但是输入的单词长度超过六个字符会导致程序冻结。 我对解决方案的兴趣不如对原因的了解。

#include <stdio.h>

main()
{
int c, i, l, max;
int length[max];

l = max = 0;

    while((c = getchar()) != EOF){
        if(c != ' ' && c != '\t' && c != '\n'){
            ++l;
            if(l > max)
               max = l;
             else
                 ;
             }
        else
            l = 0;
        }
    for(i = 0; i < max; ++i)
        length[i] = 0;

    for(i = 0; i < max; ++i)    
        printf("\n%d", length[i]);
        putchar('\n');
}

定义length[max]时, max未初始化。 本质上,您正在使用未分配的内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM