strdup 函数

embedded/2025/1/24 13:10:46/

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.ppmy.cn/embedded/156575.html

相关文章

链式前向星实现树的存储(孩⼦表示法)c++

名字看起来花⾥胡哨的&#xff0c;但是不要被唬到 链式前向星的本质就是⽤链表存储所有的孩⼦&#xff0c;其中链表是⽤数组模拟实现的 创建⼀个⾜够⼤的数组h&#xff0c;作为所有结点的哨兵位;创建两个⾜够⼤的数组e和ne&#xff0c;⼀个作为数据域&#xff0c;⼀个作为指针域…

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测。

1、导入需要的包 # 导入鸢尾花数据集 from sklearn.datasets import load_iris # 数据可视化包 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.neighbors import …

2024年度总结:做一个持续精进的人

文章目录 引言深圳三年&#xff1a;挑战与收获博客与我&#xff1a;记录与思考总结&#xff1a;感恩与前行 引言 时间如白驹过隙&#xff0c;再次提起这句话&#xff0c;已然和之前在学校时的份量不太一样了。也不知道是不是身在深圳的缘由&#xff0c;深圳作为一个超一线城市…

使用LabVIEW的History功能实现队列数据的读取而不清空

在LabVIEW中&#xff0c;有多种方法可以读取队列中的数据而不清空它。使用 Dequeue Element 和 Enqueue Element 函数可以实现读取并重新插入数据回队列&#xff0c;但当需要处理大数据流或需要更动态的解决方案时&#xff0c;这种方法可能会变得繁琐。一个更高效的解决方案是利…

【Vim Masterclass 笔记24】S10L43 + L44:同步练习10 —— 基于 Vim 缓冲区的各类基础操作练习(含点评课)

文章目录 S10L43 Exercise 12 - Vim Buffers1 训练目标2 操作指令2.1. 打开 buf* 文件2.2. 查看缓冲区 View the buffers2.3. 切换缓冲区 Switch buffers2.4. 同时编辑多个缓冲区 Edit multiple buffers at once2.5. 缓冲区的增删操作 Add and delete buffers2.6. 练习 Vim 内置…

【C++】详细讲解继承(上)

C面向对象的三大特性&#xff1a;封装&#xff0c;继承&#xff0c;多态。现在我们就介绍一下继承。 1.继承的概念及定义 1.1 继承的概念 继承机制是⾯向对象程序设计使代码可以 复⽤ 的最重要的⼿段。我们前面接触到的都是 函数 层次的复用&#xff0c;遇到过的 类 层次的复…

数学建模论文通用模板(细节方法二)

前面我们大概说了一些数学建模论文写作的重点&#xff0c;现在来更加细致的说明一下。 教会你各类竞赛数学建模论文写作&#xff08;通用模板&#xff09;-CSDN博客&#xff08;这是细节方法一&#xff09; 首先&#xff0c;在说明之前&#xff0c;还是那句话…

chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确

问题描述 chrome游览器又一款JSON插件叫JSON Formatter&#xff0c;游览器GET请求调用接口时&#xff0c;如果返回的数据是json格式&#xff0c;则会自动格式化展示&#xff0c;类似这样&#xff1a; 但是今天突然发现怎么也格式化不了&#xff0c;打开一个json文件倒是可以格…