【问题标题】:Return a char array with any length in C? [duplicate]在 C 中返回任意长度的 char 数组? [复制]
【发布时间】:2021-10-24 18:28:28
【问题描述】:

如何在 C 中返回任意长度的 char 数组?

char string[](int, int);

不起作用;有没有办法返回一个 char 数组?

【问题讨论】:

    标签: arrays c return-value


    【解决方案1】:

    你无法在 C 中做到这一点。 而是返回一个指针。

    char *string(int length, int unused) {
      char *s = calloc(x, sizeof(char));
      return s;
    }
    

    【讨论】:

    • 如何使用这个指针?
    • 调用calloc()而不用free()清除分配的内存会导致内存泄漏。
    • @jonasPamm 您可以像使用在堆栈上分配的普通字符串一样使用此指针:char *str = string(10, 0); strncpy(str, "hello", 10); str[9] = 0;
    猜你喜欢
    • 2023-03-06
    • 2021-05-06
    • 2021-12-20
    • 1970-01-01
    • 2019-09-21
    • 2018-09-11
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多