在我的教师考试中,一个常见的练习是使用函数将文本(我看到其他人这样做的方式如下:
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);
}
我的问题是,当我试图输入某些内容时,总是会遇到分段冲突。我需要帮助!
最佳答案
通过text
为malloc
分配一些内存。例如。,
char *text = malloc(1000);
记住在函数结束时使用
free
释放内存。升级版:
或者,可以考虑使用堆栈而不是堆:
static char text[1000];
请注意,在这两种情况下,您应该分配最大长度加上一个字节的字符串,因为在结尾的
'\0'
。关于c - 如何加载可以包含“换行”的文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32106909/