C语言函数返回字符串数组

在C语言中,函数不能直接返回一个字符串数组,因为一旦函数结束,局部变量就会被释放,导致数组指针无效。但是可以通过返回指向字符串数组的指针来实现。具体实现方法是在函数内部定义一个静态的字符串数组,然后将其地址返回给调用函数。这样可以保证返回的指针指向的内存空间不会被释放,从而避免了指针无效的问题。下面是一个示例代码:

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

char* getString() {
    static char str[] = "Hello, World!";
    return str;
}

int main() {
    char* s = getString();
    printf("%s\n", s);
    return 0;
}

 

在上面的代码中,getString()函数返回一个指向静态字符串数组的指针,该数组在函数内部定义,但是由于是静态的,所以其地址不会被释放。在main()函数中,我们通过调用getString()函数获取了该字符串数组的地址,并将其赋值给指针s,然后通过printf()函数输出了该字符串。
posted @ 2023-10-19 16:24  苏卡  阅读(825)  评论(0)    收藏  举报