第一次任务小计(一)

这次就先不上流程图,就一个小问题先记录以下。
关于C语言传参问题。
C语言是无法返回一个数组的,因为你想返回一个数组,只能返回该数组的首地址,但是你一个子函数里定义一个数组之后,当返回时该数组就会被自动释放,因此此时就得不到数组的值。这些东西在Python里就根本不用在意。
虽然返回数组是不行的,但是可以传递一个数组。
关于字符串数组类似char *a[2]={“123”,”abc”};这样的字符串数组。他相当于char **a;数组a有两个字符指针,如第一个字符指针指向内容为”123”的内存区域。
在向子函数传递时,字符串数组的复制就跟字符串指针的复制所差无几,首先给字符串指针分配一定的空间malloc,然后重置memset为0,之后关于字符串的赋值操作就只能用strcpy函数进行。
示例:

int main(){
    char *a[5];
    write(a);
}
int write(char *a[]){
    int i=0;
    for(;i<5;i++){
        a[i]=(char *)malloc(20);
        strcpy(a[i],"vspiders");
    }
    return 1;
}
原文地址:https://www.cnblogs.com/vspiders/p/7399126.html