Похожие чаты

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 ответов

7 просмотров

There isn't any advantage from for it.

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

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

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

Let me insert my "5++" kilocents into how zcash should be positioned (and how it would have been positioned/adopted from day one). You are allowed to believe or not believe in...
eBiker
5
In a country where censorship and arbitrary decisions are the order of the day, offering a message of hope to workers and youth is necessary, but it is only possible with expe...
Ibrahim Rabiu
1
How did we have so many dormant scammers in here? Who are these people. It’s been years. We know each other. If you dm me “I’ve been an og” but haven’t said a single word her...
Justin | LGCY |
42
Hello Everyone 🙌🏻💜 Happy (?) Friday to everyone 😁😁 I have read through all the comments/feedback/complaints in the last 2 days following the CEO Update AMA. Clearly the ...
Patrick - Ultra.io
5
[sheetoshi] Would ergo docs be the best resource for someone who has a few years experience in web development and would like to learn how to build on ergo?
DiscordBridge
17
Kraken has just announced they won t support the merger of Fet and Ocean (Agix not available anyways)! This means we on Kraken are forced to close our position on loss or tran...
MG
21
Absolutely! 100+ countries? That's insane. 🌍🔥
Josh
26
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Карта сайта