Доступ к указателю массива в отдельной функции - PullRequest
0 голосов
/ 04 октября 2019

Скажем, у меня есть массив из n символов. Я хочу передать сумму и указатель на массив функции, чтобы проверить самое большое значение в массиве. Однако я не уверен, как получить доступ к значениям из указателя.

#include <stdio.h>

int max(int *numbers, int size) {
  int temp = size;
  for (int i=0;i<temp;i++) {
   /*How do i access the array values?*/
  }
  return 0;
}

int main(void) {
  int amount;
  int Array[amount];
    int *ptr;
  printf("Enter size of array:");
  scanf("%d",&amount);
  ptr = &Array[amount];

  for(int i=0;i<amount;i++) {
    scanf("%d",&Array[i]);
  }
  printf("Number 2 in array: %d",Array[1]);
  printf("\n calling function \n");
  max(ptr,amount);
  return 0;
}

1 Ответ

0 голосов
/ 05 октября 2019

Две проблемы - вы не устанавливаете amount перед его использованием для создания Array, поэтому вы получаете массив неопределенного размера, и Array[amount] находится за концом массива. То, что вы хотите, выглядит примерно так:

  int amount;
  int *ptr;
  printf("Enter size of array:");
  scanf("%d",&amount);
  int Array[amount];
  ptr = Array;

и наличие ptr в качестве отдельной переменной не очень полезно - вы можете просто позвонить max(Array, amount)

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