【发布时间】:2021-12-03 05:12:07
【问题描述】:
假设我们有
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
int CNE;
}etudiant;
etudiant saisie(){
etudiant T[5];
int i,j;
for(i = 0;i<5;i++){
printf("Le CNE : ");
scanf("%d",T[i].CNE);
}
return T;
}
int main(){
etudiant e = saisie();
return 0;
}
我想有 100 个学生,所以我不能声明 100 个学生,然后把他们的 CNE 设置好? 那么声明它们的简单方法是什么
【问题讨论】:
-
return T[5];是什么意思?这将尝试从T返回第 6 个学生(因为数组索引从 0 开始),这是一个由 5 个学生组成的数组。 -
“不工作”是什么意思?如果您没有提供足够的详细信息,我们将无法帮助您
-
@ForceBru 如果我返回 T,它不会运行代码
-
您不能返回已声明为局部变量的数组。要么声明它是全局的,要么使用 malloc。
-
@user14655248,是的,但是您正在尝试返回不存在的东西。由于您需要在函数内分配数组,因此您不能只返回
T,因为它将在函数退出时被销毁。您应该研究动态内存分配和malloc函数。
标签: arrays c declaration return-type function-definition