int A[] = {1, 2, 3, 4, 5};
как узнать количество элементов в A?
Форум → Программирование → Больше языков → C/C++ и C# → Ц: размер безразмерного массива
1 мая 2012 г. 12:25, спустя 5 минут 40 секунд
1 мая 2012 г. 12:32, спустя 6 минут 47 секунд
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
int testArray[] = {0,1,2,3,4,5,6,7,8,9};
printf("Sizeof: %d", sizeof(testArray));
return (EXIT_SUCCESS);
}
Выводит 40, думаешь размер указателя равен 40? =)
1 мая 2012 г. 12:37, спустя 5 минут 28 секунд
Выводит 40, думаешь размер указателя равен 40? =)
1 мая 2012 г. 12:53, спустя 16 минут 16 секунд
void func(int A[]) {
printf("%u\n", sizeof(A)); // 4
}
int main(int argc, char** argv) {
int A = {1, 2, 3, 4, 5};
func(A);
}
1 мая 2012 г. 13:01, спустя 7 минут 32 секунды
1 мая 2012 г. 13:12, спустя 10 минут 55 секунд
Поэтому необходимо отправлять не только указатель на массив, но и его размер, либо как со строками заюзать что-нибуть в качестве нультерминатора.
Либо использовать std::vector
Пожалуйста, авторизуйтесь, чтобы написать комментарий!