当前位置: 首页 > article >正文

strdup 函数

strdup 函数是 C 标准库中的一个函数,用于复制一个字符串。它的全称是 "string duplicate"。这个函数在 <string.h> 头文件中声明。strdup 函数会分配足够的内存来存储源字符串的副本,并将源字符串的内容复制到新分配的内存中。然后返回指向新字符串的指针。

以下是 strdup 函数的原型:

char *strdup(const char *s);

参数

  • s:指向要复制的源字符串的指针。

返回值

  • 成功时,返回指向新分配的字符串副本的指针。
  • 如果内存分配失败,则返回 NULL。

示例代码

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    const char *original = "Hello, World!";
    char *duplicate = strdup(original);

    if (duplicate != NULL) {
        printf("Original: %s\n", original);
        printf("Duplicate: %s\n", duplicate);
        free(duplicate);  // 记得释放分配的内存
    } else {
        printf("Memory allocation failed\n");
    }

    return 0;
}

注意事项

  • strdup 函数使用 malloc 来分配内存,因此需要使用 free 函数来释放这块内存,以避免内存泄漏。
  • strdup 不是 C89 标准的一部分,但在 POSIX 和一些 C99 实现中是可用的。如果在某些平台上不可用,可以自己实现一个类似的函数。

http://www.kler.cn/a/516495.html

相关文章:

  • 9、Docker环境安装Nginx
  • SQL进阶实战技巧:用户会话内行为模式挖掘
  • ES6语法
  • 分子动力学模拟里的术语:leap-frog蛙跳算法和‌Velocity-Verlet算法
  • 【RabbitMQ 消息丢失常见情况分析】
  • Linux内存管理(Linux内存架构,malloc,slab的实现)
  • 字符串重新排列
  • C22.【C++ Cont】位运算总结(1)(例题五种解法!含汇编解法)
  • 【运维】什么是Prometheus普罗米修斯?组件式开发
  • 放弃使用Dockerfiles 平替 docker init
  • 【Block总结】FreqFusion特征融合模块,适用于分割、检测任务|即插即用
  • Kafka面试题----Kafka消息是采用Pull模式,还是Push模式
  • Python 在Word中添加、或删除超链接
  • 机器人奇点:从宇树科技看2025具身智能发展
  • 如何将pdf文件中的指定页提取出来,另存为新的pdf文件
  • 【C】链表算法题4 -- 合并两个有序链表
  • Spring MVC:深入理解与春招面试要点
  • Jenkins邮件通知的详细配置含邮件通知模板!
  • MyBatis-Plus的插件
  • 如何查找pom文件未使用的依赖
  • 窥探QCC518x-308x系列与手机之间的蓝牙HCI记录与分析 - 耳机篇
  • RabbitMQ2-简单案例
  • JVM深入学习(一)
  • 尚硅谷大数据数仓项目superset db upgrade报错解决(2025.1.23解决)
  • 云原生时代,如何构建高效分布式监控系统
  • OSCP - Proving Grounds - Quackerjack