strdup函数的用法
时间: 2023-07-01 15:05:46 浏览: 307
C语言中的strdup()函数和其与strcpy()函数的区别
strdup函数是一个C标准库函数,其原型为:
```c
char *strdup(const char *s);
```
该函数会在堆上动态分配一个和s字符串相同的内存空间,并将s字符串的内容复制到该空间中。返回值是一个指向新字符串的指针,如果内存分配失败则返回NULL。
下面是一个使用strdup函数的例子:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char str[] = "hello world";
char *str_copy = strdup(str);
printf("original string: %s\n", str);
printf("duplicated string: %s\n", str_copy);
free(str_copy); // 释放内存
return 0;
}
```
输出:
```
original string: hello world
duplicated string: hello world
```
需要注意的是,由于strdup函数会在堆上动态分配内存,因此在使用完后需要手动释放该空间,避免内存泄漏。在上面的例子中,我们使用了free函数来释放str_copy指向的内存空间。
阅读全文