<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-2%3Amabd065</id>
	<title>SE250:lab-2:mabd065 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.kram.nz/index.php?action=history&amp;feed=atom&amp;title=SE250%3Alab-2%3Amabd065"/>
	<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-2:mabd065&amp;action=history"/>
	<updated>2026-04-30T14:26:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.kram.nz/index.php?title=SE250:lab-2:mabd065&amp;diff=4975&amp;oldid=prev</id>
		<title>Mark: 14 revision(s)</title>
		<link rel="alternate" type="text/html" href="https://wiki.kram.nz/index.php?title=SE250:lab-2:mabd065&amp;diff=4975&amp;oldid=prev"/>
		<updated>2008-11-03T05:19:01Z</updated>

		<summary type="html">&lt;p&gt;14 revision(s)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Lab2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. running  printf(&amp;quot;%d\n&amp;quot;,sizeof(ip)) where ip is a pointer of type int gives the value 4 (i.e. 4 bytes).&lt;br /&gt;
&lt;br /&gt;
Other types: &lt;br /&gt;
&lt;br /&gt;
On the PC:&lt;br /&gt;
 Short: 4&lt;br /&gt;
 Float: 4&lt;br /&gt;
 Double: 4&lt;br /&gt;
 char: 4&lt;br /&gt;
&lt;br /&gt;
On Linux:&lt;br /&gt;
 Short: 4&lt;br /&gt;
 Float: 4&lt;br /&gt;
 Double: 4&lt;br /&gt;
 char: 4&lt;br /&gt;
&lt;br /&gt;
Looking at the results, all types above have the same size!!&lt;br /&gt;
&lt;br /&gt;
I have tried to use %lg in the printf instead of %d and got some strange results (1.97626e-323 for Char!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------&lt;br /&gt;
2. Executing (long) (&amp;amp;x - &amp;amp;y) gives:&lt;br /&gt;
&lt;br /&gt;
PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccc0, diff = 1&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 &amp;amp;x = 0xffb8c71c, &amp;amp;y = 0xffb8c718, diff = 1&lt;br /&gt;
&lt;br /&gt;
Executing (long)&amp;amp;x - (long)&amp;amp;y gives:&lt;br /&gt;
&lt;br /&gt;
PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccc0, diff = 4 &lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 &amp;amp;x = 0xffbb371c, &amp;amp;y = 0xffbb3718, diff = 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
Size of array on the PC &amp;amp; on linux is: 4&lt;br /&gt;
&lt;br /&gt;
PC:&lt;br /&gt;
 &amp;amp;arr = 0x22ccc0&lt;br /&gt;
 arr+4 = 0x22ccc4&lt;br /&gt;
 &amp;amp;arr[4] = 0x22ccc4&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 &amp;amp;arr = 0xffdc9714&lt;br /&gt;
 arr+4 = 0xffaa8718&lt;br /&gt;
 &amp;amp;arr[4] = 0xff945718&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     int x;&lt;br /&gt;
     char arr[10];&lt;br /&gt;
     int y;&lt;br /&gt;
     printf(&amp;quot;&amp;amp;x = %p, &amp;amp;y = %p, diff = %ld \n&amp;quot;, &amp;amp;x, &amp;amp;y, (long)(&amp;amp;x - &amp;amp;y));&lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Difference between x &amp;amp; y when arr is zero:&lt;br /&gt;
&lt;br /&gt;
Arr = 0:&lt;br /&gt;
 On PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8 &lt;br /&gt;
 On linux:&lt;br /&gt;
 &amp;amp;x = 0xffb6871c, &amp;amp;y = 0xffb68718, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 1:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccbc, diff = 2 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xff883718, &amp;amp;y = 0xff883714, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 2:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccbc, diff = 2 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xff9c9718, &amp;amp;y = 0xff9c9714, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 3:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xff8f9718, &amp;amp;y = 0xff8f9714, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 4:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccbc, diff = 2&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xff96371c, &amp;amp;y = 0xff963714, diff = 2&lt;br /&gt;
&lt;br /&gt;
Arr = 5:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xffc0871c, &amp;amp;y = 0xffc08718, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 6:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xffba171c, &amp;amp;y = 0xffba1718, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 7:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xffd2a71c, &amp;amp;y = 0xffd2a718, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 8:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccc4, &amp;amp;y = 0x22ccb4, diff = 4&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xffe98710, &amp;amp;y = 0xffe9870c, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 9:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xffc0670c, &amp;amp;y = 0xffc06708, diff = 1&lt;br /&gt;
&lt;br /&gt;
Arr = 10:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x22ccbc, &amp;amp;y = 0x22cc9c, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0xfff0770c, &amp;amp;y = 0xfff07708, diff = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After reverting Arr to size 4,&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     int x = 0;&lt;br /&gt;
     char arr[4];&lt;br /&gt;
     arr[4] = 10;&lt;br /&gt;
     int y = 0;&lt;br /&gt;
      &lt;br /&gt;
     printf(&amp;quot;&amp;amp;x = %p, &amp;amp;y = %p, diff = %ld \n&amp;quot;, &amp;amp;x, &amp;amp;y, (long)(&amp;amp;x - &amp;amp;y));&lt;br /&gt;
&lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
I got the following:&lt;br /&gt;
&lt;br /&gt;
 PC:&lt;br /&gt;
 x = 10, y = 0 &lt;br /&gt;
 Linux:&lt;br /&gt;
 x = 167772160, y = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
4.&lt;br /&gt;
&lt;br /&gt;
Repeat of task2:&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int x;&lt;br /&gt;
 int y;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     printf(&amp;quot;&amp;amp;x = %p, &amp;amp;y = %p, diff = %ld \n&amp;quot;, &amp;amp;x, &amp;amp;y, (long)( &amp;amp;x - &amp;amp;y));&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Executing (long) (&amp;amp;x - &amp;amp;y) gives:&lt;br /&gt;
&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403030, &amp;amp;y = 0x403020, diff = 4&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a68, diff = -1&lt;br /&gt;
&lt;br /&gt;
Executing (long)&amp;amp;x - (long)&amp;amp;y gives:&lt;br /&gt;
&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403030, &amp;amp;y = 0x403020, diff = 16  &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a68, diff = -4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Repeat of task3:&lt;br /&gt;
&lt;br /&gt;
Size of array on the PC &amp;amp; on linux is: 4&lt;br /&gt;
&lt;br /&gt;
PC:&lt;br /&gt;
 &amp;amp;arr = 0x403030&lt;br /&gt;
 arr+4 = 0x403034&lt;br /&gt;
 &amp;amp;arr[4] = 0x403034&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 &amp;amp;arr = 0x10010a44&lt;br /&gt;
 arr+4 = 0x10010a48&lt;br /&gt;
 &amp;amp;arr[4] = 0x10010a48&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int x;&lt;br /&gt;
 char arr[4];&lt;br /&gt;
 int y;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     printf(&amp;quot;size of size of &amp;amp;arr = %p \n&amp;quot;, &amp;amp;arr[4]);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Difference between x &amp;amp; y when arr is zero:&lt;br /&gt;
&lt;br /&gt;
Arr = 0:&lt;br /&gt;
 On PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8 &lt;br /&gt;
 On linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a68, diff = -1&lt;br /&gt;
&lt;br /&gt;
Arr = 1:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8 &lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
&lt;br /&gt;
Arr = 2:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a6c, diff = -2&lt;br /&gt;
&lt;br /&gt;
Arr = 3:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a6c, diff = -2&lt;br /&gt;
&lt;br /&gt;
Arr = 4:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a6c, diff = -2&lt;br /&gt;
&lt;br /&gt;
Arr = 5:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a70, diff = -3&lt;br /&gt;
&lt;br /&gt;
Arr = 6:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a70, diff = -3&lt;br /&gt;
&lt;br /&gt;
Arr = 7:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a70, diff = -3&lt;br /&gt;
&lt;br /&gt;
Arr = 8:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a70, diff = -3&lt;br /&gt;
&lt;br /&gt;
Arr = 9:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a68, diff = -1&lt;br /&gt;
&lt;br /&gt;
Arr = 10:&lt;br /&gt;
 PC:&lt;br /&gt;
 &amp;amp;x = 0x403040, &amp;amp;y = 0x403020, diff = 8&lt;br /&gt;
 Linux:&lt;br /&gt;
 &amp;amp;x = 0x10010a64, &amp;amp;y = 0x10010a68, diff = -1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After reverting Arr to size 4,&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     int x = 0;&lt;br /&gt;
     char arr[4];&lt;br /&gt;
     arr[4] = 10;&lt;br /&gt;
     int y = 0;&lt;br /&gt;
      &lt;br /&gt;
     printf(&amp;quot;&amp;amp;x = %p, &amp;amp;y = %p, diff = %ld \n&amp;quot;, &amp;amp;x, &amp;amp;y, (long)(&amp;amp;x - &amp;amp;y));&lt;br /&gt;
&lt;br /&gt;
     return 0;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
I got the following:&lt;br /&gt;
&lt;br /&gt;
 PC:&lt;br /&gt;
 x = 0, y = 0 &lt;br /&gt;
 Linux:&lt;br /&gt;
 x = 0, y = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int x=0;&lt;br /&gt;
 char arr[4];&lt;br /&gt;
 int y=0; &lt;br /&gt;
&lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     arr[4] = 10;&lt;br /&gt;
     printf(&amp;quot;x = %d, y = %d\n&amp;quot;, x, y);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
-------------------&lt;br /&gt;
5.&lt;br /&gt;
&lt;br /&gt;
p1 = 2280636 (0x22ccc4), p2 = 2280632 (0x22ccc0)&lt;br /&gt;
q = 0 (0x22ccbc), r = 1628704768 (0x22ccb8)&lt;br /&gt;
&lt;br /&gt;
CODE: &lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     int *p1,*p2;&lt;br /&gt;
     int q, r;&lt;br /&gt;
     p1 = &amp;amp;q;&lt;br /&gt;
     p2 = &amp;amp;r;&lt;br /&gt;
 &lt;br /&gt;
     printf(&amp;quot;p1 = %d (%p), p2 = %d (%p)\n&amp;quot;, p1, &amp;amp;p1, p2, &amp;amp;p2);&lt;br /&gt;
     printf(&amp;quot;q = %d (%p), r = %d (%p)\n&amp;quot;, q, &amp;amp;q, r, &amp;amp;r);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
---------------------------&lt;br /&gt;
6.&lt;br /&gt;
Results:&lt;br /&gt;
&lt;br /&gt;
 sp = 0x22cc90(456)&lt;br /&gt;
 sp = 0x22cc90(efg)&lt;br /&gt;
 sp = 0x22cc90(tuvwxyz)&lt;br /&gt;
 sp = 0xda01a0(hijklmn)&lt;br /&gt;
&lt;br /&gt;
CODE:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;string.h&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
 char *local_str()&lt;br /&gt;
 {&lt;br /&gt;
     char s[8] = &amp;quot;0123456&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *local_str2()&lt;br /&gt;
 {&lt;br /&gt;
     char s[8] = &amp;quot;abcdefg&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *static_str()&lt;br /&gt;
 {&lt;br /&gt;
     static char s[8] = &amp;quot;tuvwxyz&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *malloc_str()&lt;br /&gt;
 {&lt;br /&gt;
     char *s = malloc(8);&lt;br /&gt;
     strcpy(s, &amp;quot;hijklmn&amp;quot;);&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     char *sp;&lt;br /&gt;
     sp = local_str();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     sp = local_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     sp = static_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     sp = malloc_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding the extra code, the results are:&lt;br /&gt;
&lt;br /&gt;
 sp = 0x22cc90(456)&lt;br /&gt;
 sp X&amp;#039;d = 0x22cc90(5 @)&lt;br /&gt;
 sp = 0x22cc90(efg)&lt;br /&gt;
 sp X&amp;#039;d = 0x22cc90(5 @)&lt;br /&gt;
 sp = 0x22cc90(tuvwxyz)&lt;br /&gt;
 sp X&amp;#039;d = 0x22cc90(XXXXXXX)&lt;br /&gt;
 sp = 0x10101a0(hijklmn)&lt;br /&gt;
 sp X&amp;#039;d = 0x10101a0(XXXXXXX)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;string.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 char *local_str()&lt;br /&gt;
 {&lt;br /&gt;
     char s[8] = &amp;quot;0123456&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *local_str2()&lt;br /&gt;
 {&lt;br /&gt;
     char s[8] = &amp;quot;abcdefg&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *static_str()&lt;br /&gt;
 {&lt;br /&gt;
     static char s[8] = &amp;quot;tuvwxyz&amp;quot;;&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 char *malloc_str()&lt;br /&gt;
 {&lt;br /&gt;
     char *s = malloc(8);&lt;br /&gt;
     strcpy(s, &amp;quot;hijklmn&amp;quot;);&lt;br /&gt;
     return s;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
     char *sp;&lt;br /&gt;
     sp = local_str();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
     strcpy(sp, &amp;quot;XXXXXXX&amp;quot;);&lt;br /&gt;
     printf(&amp;quot;sp X&amp;#039;d = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     sp = local_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
     strcpy(sp, &amp;quot;XXXXXXX&amp;quot;);&lt;br /&gt;
     printf(&amp;quot;sp X&amp;#039;d = %p(%s)\n&amp;quot;, sp, sp); &lt;br /&gt;
 &lt;br /&gt;
     sp = static_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
     strcpy(sp, &amp;quot;XXXXXXX&amp;quot;);&lt;br /&gt;
     printf(&amp;quot;sp X&amp;#039;d = %p(%s)\n&amp;quot;, sp, sp); &lt;br /&gt;
 &lt;br /&gt;
     sp = malloc_str();&lt;br /&gt;
     local_str2();&lt;br /&gt;
     printf(&amp;quot;sp = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
     strcpy(sp, &amp;quot;XXXXXXX&amp;quot;);&lt;br /&gt;
     printf(&amp;quot;sp X&amp;#039;d = %p(%s)\n&amp;quot;, sp, sp);&lt;br /&gt;
 &lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
--[[User:Mabd065|Mabd065]] 13:35, 11 March 2008 (NZDT)&lt;/div&gt;</summary>
		<author><name>Mark</name></author>
	</entry>
</feed>