在函数中加载动态内存数组的元素

时间:2019-06-01 19:29:16

标签: c arrays function dynamic pass-by-reference

我想通过从主传递指针来在函数中加载数组的元素。我理解(希望)我需要在函数声明中传递一个指向该指针的指针,从现在开始,我必须使用 * a = malloc ... 才能从中获取地址该函数存储在from主目录中。我的问题是用scanf怎么办?我将指针传递给该指针,并为malloc使用了 * a ,并且我尝试了一切以加载元素。

scanf("%d", *(a+i);
 scanf("%d", (a+i);
 scanf("%d", **(a+i);

,这些似乎都没有  工作。 如何使scanf扫描元素并将它们放在corect的位置,以便可以在main中使用此数组?

int load(int **a) {
    int i,n;
    printf("Input the length of the array ");
    scanf("%d", &n);
    *a=malloc(n*sizeof(int));
    printf("Input the elements of the array ");
    for(i=0;i<n;i++) 
    scanf("%d",*(a+i);
    return n;

int main() {
int *a, n1;
n1=load(&a);
...

0 个答案:

没有答案