1、问题
编写一个函数,从标准输入读取一个字符串,把字符串复制到动态内存分配的内存中,并返回该字符串的拷贝,这个函数不应该对读入字符串的长度作任何限制!
2、代码实现
#include <stdio.h>
#include <stdlib.h>#define OFFSET 5char *my_strcpy()
{char *buffer = NULL;//缓冲区的长度int buffer_len = 0;//屏幕字符总长度int all_len = 0;char *p = buffer;int ch;while ((ch = getchar()) != '\n' && ch != EOF){if (all_len >= buffer_len){//再次申请的长度buffer_len += OFFSET;//扩充内存空间buffer = realloc(buffer, buffer_len);//指向刚申请内存空间的空闲地方p = buffer + all_len;}all_len++;*p++ = ch;}