Как поставить массив в функцию Если я хочу написать в него в C? - PullRequest
0 голосов
/ 30 марта 2019

Привет, я пытался гуглить, но я все еще сильно озадачен массивом в C. Мне нужно создать массив в основной функции, а затем использовать его в какой-то другой функции.Но мне нужно что-то записать в массив, и мне нужно иметь там записанную информацию, когда я ухожу из функции, мне нужно снова работать с массивом ... Так как правильно написать код?

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

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

Ответы [ 2 ]

1 голос
/ 30 марта 2019

Это 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;
}

Это то, что вы ищете?

0 голосов
/ 30 марта 2019

Полагаю, вы хотите что-то подобное ..

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

int function(int array[]) {
.
.
.
    return array[];
}

Я не совсем уверен в деталях, но вы можете пойти здесь , чтобы узнать больше. Если жаргон на сайтах - это то, что сбивает с толку, я бы посмотрел определения, чтобы код был легче понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...