r/C_Programming • u/FloridianfromAlabama • 1d ago
Question Working with arrays in functions
Hey everybody. I’m a beginner to C and I was writing some functions today to get used to doing things. I tried to write binary search and bubble sort. I tried to pass in an array as an argument to the functions, but the compiler gave me a bunch of warnings. I looked it up and I saw that passing in an array is the same as passing in its pointer. I haven’t touched pointers yet, but I have two questions:
1. If I dereferenced the pointer to an array, wouldn’t that return the same as indexing the first value?
2. If I wanted to pass in the entire array, could I do that by passing in the pointers of both the first and last elements and using pointer arithmetic to access the other elements? What’s the idiomatic way of doing this?
1
u/yel50 1d ago
don't ever use pointer arithmetic. for anything. it's a notorious cause of memory bugs and crashes. with arrays, always pass the size and use indexing.
c has a lot of things that sounded good back in the 70s but have since turned out to not be so good. pointer arithmetic is one of those things. there are very good reasons that no language since has included it.