这次就先不上流程图,就一个小问题先记录以下。
关于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;
}