C语言 strdup
时间: 2024-09-18 09:03:18 浏览: 40
C语言中的strdup()函数和其与strcpy()函数的区别
`strdup`是C语言库函数,它主要用于复制字符串。这个函数在`string.h`头文件中定义,原型通常看起来像这样:
```c
char *strdup(const char *src);
```
`strdup(src)`接收一个指向常量字符数组的指针作为参数,然后创建一个新的动态内存块,将`src`所指向的字符串完整复制到新的内存区域,并返回这个新复制的字符串的地址。注意,由于返回的是指向堆上内存的新字符串,因此使用完毕后需要手动释放分配的内存,以防内存泄漏。
使用`strdup`的一个例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
const char* original = "Hello, World!";
char* copiedStr = strdup(original);
if (copiedStr != NULL) {
printf("Copied string: %s\n", copiedStr);
free(copiedStr); // 释放内存
} else {
printf("Memory allocation failed.\n");
}
return 0;
}
```
阅读全文