2025-03-26 00:02:56 +08:00

1.6 KiB
Raw Blame History

#ios

strdup是一个 C 库函数,它通过为字符串的新副本分配内存并返回指向它的指针来复制字符串。它是标准库的一部分,常用于 C 和 C++ 编程。

句法

char *strdup(const char *s);

参数

  • s:指向要复制的以空字符结尾的字符串的指针。

返回值

  • 如果成功,它将返回一个指向与输入字符串重复的新字符串的指针。
  • 如果失败(如果内存分配失败),则返回NULL

使用示例

这是一个简单的使用示例strdup

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

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

    if (duplicate == NULL) {
        // Handle memory allocation failure
        fprintf(stderr, "Memory allocation failed\n");
        return 1;
    }

    printf("Original: %s\n", original);
    printf("Duplicate: %s\n", duplicate);

    // Free the allocated memory
    free(duplicate);
    return 0;
}

重要说明 1 内存管理由于strdup为新字符串分配了内存因此free()在完成后必须释放该内存,以避免内存泄漏。 2 可用性strdup不是 ANSI C 标准的一部分,但在许多 C 库(如 POSIX中可用。如果您在不可用的环境中工作则可以手动分配内存并使用和strdup复制字符串。mallocstrcpy 何时使用 • strdup当您需要一个字符串的可变副本并且您可以修改该副本而不影响原始字符串时使用。 • 在需要明确管理字符串内存的情况下使用 C 样式字符串时它很有用。