new_array->elem_size=type_size;returnTO_ARRAY(new_array);}#definearray_length(array)(TO_META(...
简单方法:C语言可修改函数参数所指的值,可以通过函数参数返回二维数组的行数和列数。第二种方法:定义一个结构体,存放二维数组的指针,行数和列数,getInfo分配这个结构,赋值,并返回此结构的指针。 有用 回复 边城 59.8k157274 发布于 2015-08-23 C 的数据(不管几维)都是用指针表示的,单纯的指针并不能描述...
```c typedef struct { int** pStart; int size1d; int size2d; } MyResult; ``` 直接在函数中定义指针参数来返回 ```c function get2DArray(int*** p, int* size1d, int* size2d) { // 内部代码 } ``` 好复杂的感觉! 有用 回复 jk_v1: 不需要用int**来表示,用int*来表示二维数...
return 就直接返回可以了 不用return 就将二维数组的指针或者引用作为参数
C语言有一个基本的缺陷:从函数返回数组是不可能的。对此有许多变通办法;我讲三个。
比如,用点黑魔法之类的(C语言的黑魔法当然就是宏+指针)。之前就有人提出将一个数组的长度记在首地址前。#include#includetypedefstructarray_meta_t{intlength;intelem_size;}array_meta;#defineTO_META(array)(((array_meta*)array)-1)#defineTO_ARRAY(meta)((void*)(meta+1))void*array_allocate(intlength...
C语言有一个基本的缺陷:从函数返回数组是不可能的。对此有许多变通办法;我讲三个。