下面展示了我的一部分C代码。
int data[10]={1,3,6,8,1,7,9,1,1,1};
b=10;
int out[b];
process(data, &b, out);
alpha (out, b);
data 和 out 都是 int 数组。函数 process 接受数组 data,该数组的长度由 b 指定(b=10),然后进行数学运算,然后返回一个数组 out,其长度再次由 b 指定(未知,因此需要动态分配)。然后将数组 out 与函数 alpha 一起发送。目前函数 alpha 总是发送 out[10],因为在代码的第二行中已声明 b 为 10。如何动态分配数组 out,以便它仅包含函数 process 返回的有效数据。
malloc
函数... - barak manosalpha
函数中,您不需要使用out
的所有元素,因为您只需传递数组 (b
) 的维度即可保持在这些值之间:[0 ... b)
。 - David Ranieri