strdup函数的用法
时间: 2023-07-01 20:11:19 浏览: 144
编写名为strdup的函数,此函数使用动态存储分配来产生字符串的副本。
5星 · 资源好评率100%
strdup函数是C语言标准库中的一个字符串处理函数,其可以将一个字符串复制到一个新的内存空间,并返回这个新的内存空间的首地址。
函数原型为:
```c
char *strdup(const char *s);
```
参数s是需要被复制的字符串,函数返回一个指向新分配内存的指针,如果内存分配失败,则返回NULL。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *str = "Hello world!";
char *new_str = strdup(str);
if (new_str == NULL) {
printf("Error: Memory allocation failed!\n");
} else {
printf("Original string: %s\n", str);
printf("New string: %s\n", new_str);
free(new_str); // 释放内存
}
return 0;
}
```
输出结果为:
```
Original string: Hello world!
New string: Hello world!
```
需要注意的是,使用strdup函数分配的内存需要手动释放,否则会造成内存泄漏。可以使用free函数释放内存。
阅读全文