Как проверить, пуст ли массив в C?

Системный вызов Waitpid на C Программирование и разработка

Массив — это тип структуры данных, который может хранить однородные элементы типа данных. Размер массива фиксирован.

Синтаксис:

int arr[N];

здесь тип данных массива — целое число, имя массива — arr, а размер массива — N.

Пример:

С

// C Program to declare an
// array and check it's size
#include <stdio.h>
 
int main()
{
    int arr[5] = { 1, 2, 3, 4, 5 };
 
    printf("Size of the array: %d bytes\n", sizeof(arr));
 
    return 0;
}

Выход

Size of the array: 20 bytes

В приведенной выше программе мы создали массив с некоторыми элементами в нем. Это наиболее распространенный способ создания массива. Затем мы использовали оператор sizeof() для вывода размера массива. Чтобы узнать больше об операторе sizeof(), обратитесь к sizeof() в C.

Размер типа данных варьируется от машины к машине. На нашей машине тип данных int состоит из 4 байтов, а приведенный выше массив содержит 5 элементов, поэтому общий размер массива составляет 5×4 = 20 байт.

Теперь мы создадим массив, указав только его размер. Мы не будем вставлять в него какие-либо элементы. Посмотрите на приведенную ниже программу:

Пример:

С

// C Program to check
// above condition
#include <stdio.h>
 
int main()
{
    int arr[5] = {};
 
    printf("Size of the array: %d bytes\n", sizeof(arr));
 
    return 0;
}

Выход

Size of the array: 20 bytes

Приведенный выше вывод говорит о том, что размер массива составляет 20 байт.

Причина: Причина в том, что мы упомянули размер массива. Итак, компилятор автоматически создает массив, который может содержать 5 значений, несмотря на то, что мы еще не объявили никаких значений. В этом случае в массив помещаются некоторые заранее определенные значения, чтобы заполнить его позиции. Вот почему вывод показывает, что массив имеет размер 20 байт. Дело в том, что мы еще не вставили никаких значений.

Пустой массив

Массив можно сказать только тогда, когда размер массива равен 0. И это возможно только при инициализации. Итак, давайте проверим, как проверить, когда массив пуст.

Пример:

С

// C Program to check array is
// empty or not
#include <stdio.h>
 
int main()
{
    // Method1 to declare empty array
    int arr1[] = {};
 
    // Method2 to declare empty array
    int arr2[0];
 
    printf("Size of the array1: %d bytes\n", sizeof(arr1));
    printf("Size of the array2: %d bytes\n", sizeof(arr1));
 
    return 0;
}

Выход

Size of the array1: 0 bytes
Size of the array2: 0 bytes

Способ 1: Здесь мы объявили массив, но не указали его размер и не вставили в него какие-либо элементы. Это означает, что компилятор не знает ни размера массива, ни его элементов. Таким образом, он не может использовать ни один из них, чтобы задать массиву определенный размер. В результате в массиве не осталось места для элементов, поэтому приведенный выше вывод показывает, что размер массива равен 0 байт.

Способ 2: поскольку размер массива уже равен 0, ему не выделяется память. Так тоже пусто

Читайте также:  Что такое HTTP-аутентификация?
Оцените статью
bestprogrammer.ru
Добавить комментарий