We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

urgent --array

zizi21
zizi21 asked
on
Medium Priority
209 Views
Last Modified: 2012-05-06
hi,

i have an array like this arr[10] which has values.

now, i want to assign a pointer to the array like this;

arrpointer=arr;

but i want it to start from 1 and not zero...tq
Comment
Watch Question

arrpointer = arr + sizeof(arr[0]);
CERTIFIED EXPERT
Top Expert 2009
Commented:
>> arrpointer = arr + sizeof(arr[0]);

That's incorrect.

The right way is :

        arrpointer = arr + 1;

or :

        arrpointer = &arr[1];

or something similar.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015
Commented:
arrpointer = arr+1;
could you write?

arrpointer = &arr + sizeof(arr[0]);
CERTIFIED EXPERT
Top Expert 2009

Commented:
>> could you write?
>> 
>> arrpointer = &arr + sizeof(arr[0]);

No. adding to a pointer already adds sizeof(type) where type is the type the pointer points to. Using sizeof yourself adds too much.
For example, if sizeof(arr[0]) is 4, then arrpointer would point to the 5th element, not the second element.
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
only if sizeof(arr[0]) == 0

perhaps you were thinking of
(arrtype *)(((int)arr) + sizeof(arr[0]))
(which is not portable if (arrtype *) does not fit in an int
or
(arrtype *)(((char *)arr) + sizeof(arr[0]))
which is not a good idea either.
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
arr[i] is just another way of saying *(arr + i)
so
arr + sizeof(arr[0])
is equivalent to
&arr[sizeof(arr[0])]

Author

Commented:
thanks a million
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.