Итак, учитывая следующее:
#include <stdio.h>
int * getarr();
int main(int argc, char* argv)
{
int * arr = getarr();
printf("%d", sizeof(arr));
}
int* getarr()
{
static int a[4] = {0,1,0,3};
return a;
}
Как найти длину arr
?arr[4] == 0
, но так же arr[0]
и arr[2]
.
Если бы это было char*
, ответ был бы iterate until '\0'
, но, похоже, здесь не работает как '\0' == 0
.
Адресация arr[5]
может привести к значению> 16 3 - 1 (размер целого в моей системе), но это не является надежной меройи мне кажется, что это просто пустое место в памяти.
Есть ли способ получить это значение последовательно?Или это просто нужно передать?