Исполнительное резюме:
int a[17];
size_t n = sizeof(a)/sizeof(a[0]);
Чтобы определить размер вашего массива в байтах, вы можете использовать оператор sizeof
:
int a[17];
size_t n = sizeof(a);
На моем компьютере, ints имеют длину 4 байта, поэтому n равно 68.
Чтобы определить количество элементов в массиве, мы можем разделить общий размер массива на размер элемента массива. Вы можете сделать это с типом, например:
int a[17];
size_t n = sizeof(a) / sizeof(int);
и получить правильный ответ (68/4 = 17), но если тип a
изменился, у вас будет неприятная ошибка, если вы также забыли изменить sizeof(int)
.
Таким образом, предпочтительным делителем является sizeof(a[0])
, размер элемента zeroeth массива.
int a[17];
size_t n = sizeof(a) / sizeof(a[0]);
Еще одно преимущество что теперь вы можете легко параметризовать имя массива в макросе и получить:
#define NELEMS(x) (sizeof(x) / sizeof((x)[0]))
int a[17];
size_t n = NELEMS(a);
Когда вы распространяете свой пакет (будь то с помощью соответствующего установщика или просто zip-файла или что-то еще), вы также должны включать DLL. Точно то, как включать DLL, зависит от того, какой инструмент вы используете для создания установщика.
Если по какой-то причине вы ограничены распространением одного файла .exe, вы можете использовать ILMerge , чтобы объединить произвольное количество библиотек DLL .NET в исполняемый файл.