在C程序中,从子例程返回数组可以通过以下几种方式实现:
#include <stdio.h>
void modifyArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2; // 修改数组元素的值
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
modifyArray(arr, size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // 输出修改后的数组
}
return 0;
}
输出结果为:2 4 6 8 10
#include <stdio.h>
#include <stdlib.h>
int* createArray(int size) {
int* arr = (int*)malloc(size * sizeof(int)); // 动态分配内存空间
for (int i = 0; i < size; i++) {
arr[i] = i + 1; // 初始化数组元素的值
}
return arr;
}
int main() {
int size = 5;
int* arr = createArray(size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // 输出子例程创建的数组
}
free(arr); // 释放内存空间
return 0;
}
输出结果为:1 2 3 4 5
#include <stdio.h>
typedef struct {
int* arr;
int size;
} ArrayInfo;
ArrayInfo createArray(int size) {
ArrayInfo info;
info.arr = (int*)malloc(size * sizeof(int)); // 动态分配内存空间
info.size = size;
for (int i = 0; i < size; i++) {
info.arr[i] = i + 1; // 初始化数组元素的值
}
return info;
}
int main() {
int size = 5;
ArrayInfo info = createArray(size);
for (int i = 0; i < info.size; i++) {
printf("%d ", info.arr[i]); // 输出子例程创建的数组
}
free(info.arr); // 释放内存空间
return 0;
}
输出结果为:1 2 3 4 5
以上是从子例程返回数组的几种常见方法,具体使用哪种方法取决于实际需求和编程习惯。在实际开发中,可以根据具体情况选择最合适的方式。
领取专属 10元无门槛券
手把手带您无忧上云