如何在 C 语言中返回一个数组
C 语言允许函数返回数组,但与其他语言不同的是,它返回指向数组第一个元素的指针。无法直接返回数组本身。
方法:
为了返回一个数组,请遵循以下步骤:
立即学习“C语言免费学习笔记(深入)”;
定义一个指向数组的指针:
<code class="c">int *arr_pointer;</code>
为数组分配内存:
<code class="c">arr_pointer = malloc(n * sizeof(int)); // 其中 n 是数组大小</code>
将数组元素填充到分配的内存中:
<code class="c">for (int i = 0; i < n; i++) {
arr_pointer[i] = i;
}</code>
返回指向数组第一个元素的指针:
<code class="c">return arr_pointer;</code>
示例:
<code class="c">#include <stdlib.h>
int *create_array(int n) {
int *arr_pointer;
arr_pointer = malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
arr_pointer[i] = i;
}
return arr_pointer;
}
int main() {
int *arr = create_array(5);
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
free(arr);
return 0;
}</code>输出:
<code>0 1 2 3 4</code>
注意事项:
必须在使用之前为函数返回的指针分配内存。 在不再需要数组时,必须使用free()函数释放分配的内存。 虽然 C 语言允许函数返回指向数组的指针,但这与返回其他数据类型的指针有所不同。 数组的内容存储在指向的内存中,而不是指针本身。
