在我的教师考试中,一个常见的练习是使用函数将文本(我看到其他人这样做的方式如下:

char * load (int  *characters) //characters=amount of characters written
{
    static char *text;
    *characters=0;
    while((*characters<999) && (((text[*characters]) = getchar()) != EOF))
    {
        ++*characters;
    }
    text[*characters]='\0';
    return(text);
}

我的问题是,当我试图输入某些内容时,总是会遇到分段冲突。我需要帮助!

最佳答案

通过textmalloc分配一些内存。例如。,

char *text = malloc(1000);

记住在函数结束时使用free释放内存。
升级版:
或者,可以考虑使用堆栈而不是堆:
static char text[1000];

请注意,在这两种情况下,您应该分配最大长度加上一个字节的字符串,因为在结尾的'\0'

关于c - 如何加载可以包含“换行”的文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32106909/

10-11 15:33