方法1: 动态内存分配
#include <stdio.h> #include <stdlib.h> int *get_score() { int i; int *s = malloc(5 * sizeof(int)); for(i = 0; i < 5; i++) { scanf("%d", &s[i]); } return s; } int main() { int *p = get_score(); int i; for(i = 0; i < 5; i++) { printf("%d\n", p[i]); } }
方法2: 用静态数组
#include <stdio.h> #include <stdlib.h> int *get_score() { int i; int s[5]; //错,因为s[5]是局部变量,函数执行完s[5]就被释放掉了 //改成 static int s[5]即可 for(i = 0; i < 5; i++) { scanf("%d", &s[i]); } return s; } int main() { int *p = get_score(); int i; for(i = 0; i < 5; i++) { printf("%d\n", p[i]); } }