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;}

C和指针之动态内存分配之编程练习3相关推荐

  1. C和指针之动态内存分配之编程练习4

    1.问题 4.编写一个程序,按照下图中的样子创建数据结构,最后三个对象都是动态分配的结构.第一个对象则可能是一个静态的指向结构的指针.你不必使这个程序过于全面--我们将在下一章讨论这个结构. 2.代码 ...

  2. C和指针之动态内存分配常见问题和总结

    1.动态内存分配常见问题       1) 结构体成员指针未初始化       2)为指针分配内存太小       3)内存分配成功,但是没初始化       4)内存越界,内存泄漏,free多次或者 ...

  3. C++智能指针与动态内存分配

    智能指针 一般有三种智能智能指针:std::shared_ptr.std::unique_ptr和std::wek_ptr.std::shared_ptr允许多个指针共享内存对象,std::uniqu ...

  4. C和指针之动态内存分配malloc、calloc、realloc简单使用和区别

    1.介绍 3个函数都在<stdlib.h>头文件 1).void* malloc(unsigned size); 在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需 ...

  5. C和指针之动态内存分配之输入很多整数进行排序

    1.问题 读取一列整数,然后按升序排列它们,最后打印列表 2.代码实现 #include <stdio.h> #include <stdlib.h> /** 此函数根据你给的比 ...

  6. C和指针之动态内存分配堆、栈、全局区(静态区)、常量区对比总结学习笔记

    一.各个区的介绍   1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一般由程序员分配释放, 若程序员不 ...

  7. C和指针之动态内存分配之(编写calloc函数,函数内部使用malloc函数来获取内存)

    1.问题 编写calloc函数,函数内部使用malloc函数来获取内存               2.代码实现 #include <stdio.h> #include <stdli ...

  8. C和指针之动态内存分配(读取范围在1和标准输入读取的size之前每个数据出现的次数)

    1.问题 读取范围在1和标准输入读取的size之前每个数据出现的次数 2.代码实现 #include <stdio.h> #include <stdlib.h> #includ ...

  9. 【 C 】动态内存分配案例分析

    声明一个指向char类型的指针,可以在声明的时候就对其进行初始化,这样是合理的. 例如: E1: #include <stdio.h> #include <stdlib.h> ...

最新文章

  1. Dubbo快速启动示例
  2. NeHe OpenGL第二十四课:扩展
  3. 如何用文本档编辑c语言,c语言读写word文档
  4. 一个springboot能支持多少并发_跑滴滴一个月能挣多少?-好不好
  5. android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...
  6. 5款好用的时间管理软件推荐[2020年推荐]
  7. uint8_t和char的相互转换
  8. 策略分享-基于海龟交易模型的优化 暂存
  9. 重磅!人工智能会取代科学家? 道翰天琼认知智能机器人API接口平台为您揭秘-1。
  10. 排行前50的编程语言
  11. [c语言]进值转换的详细代码实现(二进制,十进制,十六进制等)
  12. PostgreSQL:关于 socket 文件 /tmp/.s.PGSQL.nnnn 丢失处理
  13. 新版正方教务系统Java爬取_正方教务系统成绩爬取(仅个人)+tk可视化
  14. 博文视点金秋新书大放送(1)
  15. VB个性签名——在图片上写字
  16. 订单BOM -销售BOM-标准BOM
  17. IIS 元数据访问失败
  18. Scala中使用ansj分词库编写spark中文版WordCount
  19. Springboot2.x集成ES7.x
  20. 金蝶EAS/BOS开发小知识一

热门文章

  1. 记一次 .NET医院公众号程序 线程CPU双高分析
  2. 开源许可证的变更带给我们什么启示?
  3. Leansoft再发招贤令:面试官徐磊有话讲 | IDCF
  4. 用 Span 对 C# 进程中三大内存区域进行统一访问 ,太厉害了!
  5. 哪种开源许可证最适合商业化?
  6. 中国速度之二神山建设(3):有力的技术保障,基建世界里的云原生缩影 | IDCF DevOps案例研究...
  7. .Net Core3.1下使用Swagger搭建web api项目
  8. 腾讯发布 Tencent SCF Toolkit VS Code 插件,轻松开发无服务器云函数
  9. 仿B站(一) 目的分析以及创建 WebAPI + Angular7 项目
  10. EFCore Lazy Loading + Inheritance = 干净的数据表 (一)