I dont know why the function doesnt recognize the whole array | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

I dont know why the function doesnt recognize the whole array

i have a problem with a function to receive an array from the main(); where it doesnt recognize the whole array size in bytes inside the Print function , but it does inside the main(); function. I leave to you the code so you can see what its the problem because i dont see it, please help https://code.sololearn.com/cL2K11C7Q7Yh/?ref=app

6th Feb 2019, 5:19 PM
Drew
Drew - avatar
7 Answers
+ 4
you can do that by passing a reference to an array ( only in c++ ): https://code.sololearn.com/c3ladI1DwtRx/#cpp the syntax int(&arr)[N] means "reference to an array of N int." this explicitly passes the array by reference into printArray, and it will capture the size of the array at compile time. however, this is very unusual syntax and rarely seen in practice. perhaps the best idea is to not use raw arrays but you should use the STL container std::array or std::vector as HonFu mentioned.
7th Feb 2019, 12:02 AM
MO ELomari
+ 3
C-style arrays don't get passed full value, but only the pointer is passed (which is 8 bytes).
6th Feb 2019, 5:31 PM
HonFu
HonFu - avatar
+ 2
Mohamed ELomari thanks for the explanation and the code really helped dude
9th Feb 2019, 2:39 AM
Drew
Drew - avatar
+ 2
Drew, you don't have to study the whole object oriented area of C++; these are just tools from the standard library that you can use. Normally you'll find a section somewhere in a tutorial 'container classes or something'. Let me see if I find anything... ah yeah, here! https://medium.com/the-renaissance-developer/c-standard-template-library-stl-vector-a-pretty-simple-guide-d2b64184d50b
9th Feb 2019, 6:37 AM
HonFu
HonFu - avatar
+ 1
HonFu thanks, and how do i solve it? which array allows me to pass full value?
6th Feb 2019, 6:05 PM
Drew
Drew - avatar
+ 1
If you work with C arrays, you usually pass the size as a second argument. If you don't want that (writing C++ you mostly don't), you can use the classes vector or array; they come with their own length properties and methods to manipulate the content. (You should still not pass the whole thing as value, but as reference or pointer.)
6th Feb 2019, 6:20 PM
HonFu
HonFu - avatar
+ 1
HonFu thanks for the info man, i havent got too much into classes properties yet, got to learn more about it
9th Feb 2019, 2:50 AM
Drew
Drew - avatar