首页 > 解决方案 > 如果我想在 C 中写入数组,如何使数组发挥作用?

问题描述

嗨,我试着用谷歌搜索,但我仍然对 C 中的数组感到很困惑。我需要在主函数中创建一个数组,然后在其他函数中使用它。但是我需要向数组写入一些东西,并且当我离开函数时我需要在那里有书面信息,我需要再次使用数组......那么如何正确编写代码?

main(){
  int *matrix;
  matrix=calloc(10,sizeof(int));
  function(matrix? &matrix?)
  printf("%d",array[1]);
}

void function (*array? **array?){
   array[1]=5;
}

标签: carraysfunctionpointers

解决方案


这是一个mcve,它修改您的代码,以便它分配一些内存并将指向它的指针作为参数传递给向其写入值的函数:

#include <stdio.h>
#include <stdlib.h>

void function(int *array) {
    array[1] = 5;
}

int main(void)
{
    int *matrix;
    const int length = 10;
    matrix = calloc(length, sizeof(int));
    if (NULL == matrix) {
        perror("Could not allocate memory for matrix");
        exit(1);
    }
    function(matrix);
    printf("%d\n", matrix[1]);
    return 0;
}

这是你想要的?


推荐阅读