Лучшие практики: Как пройти массив в C? - PullRequest
0 голосов
/ 26 января 2019

--- EDIT --- Массив ранее был инициализирован как указатель (* arr).

Для решения проблемы, которую я пытаюсь решить, мне нужно просмотреть массив переменных размеров и начать использовать этот цикл:

int arr[] = {3, 5, 10, -2, -1, -3}; // Just an example
int i = 0;

while(arr[i]) {

    //do something
    i++;

}

Кажется, что после прохождения массива, который я инициализировал, код находит некоторые случайные значения, хранящиеся в памяти, и продолжает считать, даже если массив, с которым я пытаюсь работать, давно пройден.

Как мне этого избежать?

С наилучшими пожеланиями!

1 Ответ

0 голосов
/ 26 января 2019

int *arr не является массивом.

int - это не тот тип, который следует использовать в качестве индекса. Используйте size_t вместо

Массив

int arr[50]; <- это массив </p>

Вы можете получить размер массива, разделив его размер на размер элемента.

указатель

int *ptr; он ссылается только на объект int. Вы не можете получить размер выделенной памяти, разделив размер указателя на размер эталонного объекта

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