Похожие чаты

Guys Im passing an array to a function The function defination is

like this:
int my_funcie(int *arr);

It takes an array of integers, and let's say it prints the array's elements

The problem is I want to use a for loop to print elements, and I don't want to hardcode the condition
For example

for(int index = 0; index < array_length; index++)

here, the array_size is the problem
According to this StackOverflow answer

It should work using this piece of code:
int array_length = sizeof(arr) / sizeof(arr[0])

I put this inside my my_funcie function, but it doesn't give me the proper result
For example It's saying the array with 5 integer elemnts (sizeof(arr)) is 8 and the sizeof(arr[0]) is 4
It does 8/4 and gets 2 as the array_length

What am I doing wrong?
The same method works pretty well where I defined the array itself

I'm using C and gcc 9.2.0 btw

3 ответов

9 просмотров

It doesn't work this way if you're getting the array as a function parameter. Go through the ss posted by John it'll explain this in detail. Instead of array you can use vectors. Personally I prefer vectors over arrays plus vectors have their own size() function which will give you an exact count of the number of elements present inside it.

rewrite the function signature as int my_funcie(size_t size, int arr[size])

Jens Gustedt's Modern C has multiple paragraphs about the difference between arrays and pointers. you should read them. the book is linked in the pinned message.

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

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

а через 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
Карта сайта