C 语⾔⾃定义函数如何返回数组
C 语⾔如何返回数组使⽤ C 语⾔,在 main() 函数中调⽤了⼀个⾃定义的函数,想要从函数中获取其运⾏产⽣的字符串,直接返回是实现不了的,最起码也要返回数组的地址。但是在⾃定义函数中创建数组后,该数组本⾝是⼀个局部变量,当该⾃定义函数的⽣命周期结束后,局部变量也就被回收了,即使返回了⼀个代表数组的地址,但实际上其指代的内容可能已经发⽣了变化。
有三种⽅法可以实现⾃定义函数成功返回数组:
1、将数组定义为;
2、使⽤malloc 在堆区开辟动态空间;
3、在调⽤函数时传⼊数组地址。
----->如果在需求允许的情况下,直接将数组定义为全局变量是最快的,直接在程序前声明即可。----->使⽤malloc 在堆区开辟动态空间:
----->在调⽤函数时传⼊数组地址:
在主函数中定义了⼀个数组,然后在调⽤⾃定义函数时,将该数组的地址当作参数传递过去,这样也可以成功的使⽤数组中的内容,并在⾃定义函数结束后将内容返回。#include <stdio.h>#include <string.h>#include <malloc.h>char *getArr (){ char *p ; p = (char *)malloc (10); strcpy (p , "12345"); return p ;}int main (){ char *p ; p = getArr (); printf ("%s",p ); free (p ); return 0;}
12
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h>#include <string.h>char *getArr (char *p ){ strcpy (p , "12345"); return p ;}int main (){ char arr [10] = {}; getArr (arr ); printf ("%s",arr ); return 0;}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
此外,如果仅仅想使⽤⾃定义函数中声明的字符串常量,可以直接⽤函数返回其地址即可,因为字符串常量是存放在常量区,空间不随着⾃定义函数的结束⽽回收。
c语言如何创建字符串数组
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论