I have some problems with pointers and arrays in C. Here's the code:
Add # & lt; Stdio.h & gt; Int * AP; Int a [5] = {41,42,43,44,45}; Int x; Int main () {AP = A [4]; X = * AP; Printf ("% d", x); Return 0; }
When I'd compiled code runs, I get a warning:
[warning] integer without assignment, artists Indicator [enabled by default]
line number 9 (AP = A [4];) and for terminal crash. If I change the line 9 then I do not get any warning to include the situation (AP = A;) and it works. Why is this happening? I think the answer is obvious but I can not see it
In this case A [4]
to 4th a
, ap
is an indicator for the integer, therefore you are assigning an integer for an indicator and this is the warning.
AP
now 45
does and when you try to refer to it ( * ap
) to access a memory 45 address Trying to do that is an invalid address, so your program crashes.
You should do ap = & (one [4]);
or AP = A + 4;
In the c
the array name decreases the indicator, hence the a
for the first element of the number array. In this way, a
and (a [0]) are equal to
.
Comments
Post a Comment