Похожие чаты

Ouch... I knew about array decay, but I didn't knew

about that weird behavior of array dereference when it has the (somehow function pointer like) syntax "T (*v)[U]". The only advantage of this is that one has the size of the whole array (which one has anyway as it has to be available at compile time). The price for that is that one has to add another level of dereference. Is there any other advantage I'm not aware of? Why not just using a const/constexpr/define for the fixed array size? Here's the code I tested this with:
#include <stdio.h>

void function(int *arr) {
printf("sizeof(arr) = %d\n", sizeof(arr)); // size of pointer
printf("arr = %d\n", arr); // addr of array
printf("*arr = %d\n", *arr); // first element
}

void function2(int (*arr)[10]) {
printf("sizeof(arr) = %d\n", sizeof(arr)); // size of pointer
printf("sizeof(*arr) = %d\n", sizeof(*arr)); // size of array (already known at compile time)
printf("arr = %d\n", arr); // addr of array
printf("*arr = %d\n", *arr); // addr of array
printf("**arr = %d\n", **arr); // first element
}

void main(int argc, char* argv[]) {
int a[10] = {42};
printf("\n==================\n");
function(a);
printf("\n==================\n");
function2(&a);
}

Output:
==================
sizeof(arr) = 4
arr = 13629964
*arr = 42

==================
sizeof(arr) = 4
sizeof(*arr) = 40
arr = 13629964
*arr = 13629964
**arr = 42

2 ответов

16 просмотров

There isn't any advantage from for it.

Why don't you use a reference? O.o

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Привет)) уже кажется эту тему перемусолили, но вот я так и не понял. Я сейчас сижу на 27дюймов 2к мониторе. На Актуальной макоси, если я куплю 27д 4к монитор: - будет ли изобр...
Vladislav Piskunov
15
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
any reference of this implementation?
BitBuddha
29
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
&"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\dumpbin.exe" /EXPORTS C:\Users\Yeet\Tauon\vcpkg\installed\x64-window...
Martin Rys
6
Карта сайта