I understood that when you pass the name of the array as an argument to a function we are actually passing the base address of the array, which inturn gets collected by a pointer variable and thus s[i]=(s+i)=(i+s)=i[s]. The problem begins when we turn to 2-D arrays. When we want to access a column element i.e s[i][j] in pointer notation this becomes ((s+i)+j). What is the logic for this? I understood that in memory the arrays are all 1-D arrays and 2-D arrays are nothing but array of arrays i.e. the individual rows become arrays. Based upon this understanding can someone explain the logic of using ((s+i)+j) to access 2-D array elements?
anumash
0
Newbie Poster
Recommended Answers
Jump to PostWhen we want to access a column element i.e s[i][j] in pointer notation this becomes ((s+i)+j)
Not quite. Multiply i by the size of the first array dimension.
s[i][j] = s[(i*original length of first dimension) + j]
All 3 Replies
Moschops
683
Practically a Master Poster
Featured Poster
anumash
0
Newbie Poster
anumash
0
Newbie Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.