strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函数成对出现。

strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。

一、strdup函数

函数原型
头文件:#include <string.h>
char *strdup(const char *s);

功能:将字符串拷贝到新建的位置处

返回值 :返回一个指针,指向为复制字符串分配的空间。如果分配空间失败,则返回NULL值。

#include <stdio.h>
#include <string.h>
#include <alloc.h>int main(void) {    char *dup_str, *string = "abcde";dup_str = strdup(string);   printf("%s\n", dup_str);    free(dup_str);return 0;
}

二、strndup函数

函数原型#include <string.h>
char *strndup(const char *str, size_t len);

#include <stdio.h>
#include <string.h>
#include <alloc.h>int main(void){char *dup_str, *string = "abcde";dup_str = strndup(string,6);printf("%s\n", dup_str);free(dup_str);return 0;}

linux的strdup与strndup相关推荐

  1. Linux字符串处理函数strdup、strndup、strndupa、strdupa

    一.函数族strdup.strndup.strndupa.strdupa strdup函数原型: strdup()主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s不相干. ...

  2. c语言 函数strdup,C/C++ strdup()、strndup()用法及代码示例

    strdup()和strndup()函数用于复制字符串. strdup(): 用法: char * strdup(const char * s); 此函数返回一个以空值结尾的字节字符串的指针,该字符串 ...

  3. strdup和strndup函数

    首先说明一下:这两个函数不建议使用,原因是返回内存地址把释放权交给别的变量,容易忘记释放. 一.strdup函数 函数原型 头文件:#include <string.h> char *st ...

  4. linux c strdup 字符串拷贝

    #include <string.h> char *strdup(const char *s); 函数介绍: strdup()函数是c语言中常用的一种字符串拷贝库函数,一般和free()函 ...

  5. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

  6. php调用C代码的方法详解和zend_parse_parameters函数详解

    来源:http://my.oschina.net/Customs/blog/490873 http://blog.csdn.net/super_ufo/article/details/3863731 ...

  7. 使用valgrind对gperftools(tcmalloc)进行内存泄漏和越界检测

    使用valgrind对gperftools(tcmalloc)进行内存泄漏和越界检测 RToax 2021年3月 1. 问题引入 在<内存分配器ptmalloc,jemalloc,tcmallo ...

  8. 6、宏定义与预处理、函数与函数库

    C语言预处理理论 由源码到可执行程序的过程 源码.c->(编译)->elf可执行程序 源码.c->(编译)->目标文件.o->(链接)->elf可执行程序 源码.c ...

  9. 大内高手 内存管理器

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 大内高手 ...

最新文章

  1. 用最少的时间学最多的数据挖掘知识(附教程数据源)| CSDN博文精选
  2. [Ms SQL] 基本創建、修改與刪除
  3. Knn算法(机器学习)入门(Python实现)
  4. NoSQL还是SQL?这一篇讲清楚
  5. 在整个数据库中查找包含某关键字的所有存储过程
  6. python查找指定文件路径_Python寻找路径和查找文件路径的示例
  7. python动态类型的坑_在Python中避免动态类型错误的策略是什么(NoneType没有属性x)?...
  8. Java编程软件教学:Eclipse入门
  9. 计算机的网络说课稿模板,小学信息技术说课稿优秀模板
  10. .net Core 3.1 项目打包部署到Windows服务
  11. linux版flash下载工具,Linux系统下安装Flash浏览器插件的方法
  12. QGIS 影像图黑色背景去除
  13. 零基础入门进化算法(基本概念)
  14. 阿里云海外云服务器5折起,新老用户均可选购(免备案)
  15. html怎么在表格中加虚线,html设置虚线边框的方法详细介绍
  16. Neno和OpenMP的性能提升验证
  17. 【Javascript】【视频录制】通过video标签和canvas实现视频截图录制和下载
  18. 类似qq的汉字拼音首字查询
  19. 关于http的Authorization
  20. 最小二乘法(Ordinary Least Squares)

热门文章

  1. PC端 Rockchip RKNN-Toolkit 连接 Rockchip NPU 设备
  2. 忆龙2009:三阶魔方的PROLOG算法分析
  3. win7系统注册表开机启动项如何打开?
  4. Arduino UNO + DS1302简单获取时间并串口打印
  5. CA-IS3721HS 双通道标准数字隔离器简介
  6. 服务器文件夹是什么文件夹,传奇服务端每个文件夹的含义
  7. labview的MAX显示数据库损坏的解决办法
  8. Iphone开发基础教程 (7章 标签栏与选取器)--读书笔记
  9. 新聘应届生入职培训计划(华为)
  10. 给文件夹添加everyone用户