Compare commits
3 Commits
7013102385
...
master
Author | SHA1 | Date | |
---|---|---|---|
5787d314e0 | |||
74c77ecd89 | |||
b1e1727f28 |
26
Assignment 1/excercise3/exercise3b.c
Normal file
26
Assignment 1/excercise3/exercise3b.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main (int argc , char** argv ){
|
||||
|
||||
// Open file for reading
|
||||
// We are opening a device file for reading ,
|
||||
// which is like reading from a file but the file is not necessarily an actual file on disk.
|
||||
// instead it could be some sort of external device or a simple piece of software returning bytes to us
|
||||
FILE* fp = fopen("/dev/urandom", "r");
|
||||
if( !fp){
|
||||
perror("File opening failed!");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
while ( 1 ){
|
||||
char random = fgetc(fp);
|
||||
if ( random == 42 ){
|
||||
break;
|
||||
}
|
||||
printf("Read 0x%x %u %d from /dev/urandom\n", random, random , random);
|
||||
// getchar();
|
||||
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
26
Assignment 1/excercise3/exercise3d.c
Normal file
26
Assignment 1/excercise3/exercise3d.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
int main (int argc , char** argv){
|
||||
uint16_t number;
|
||||
FILE* urandomFile = fopen( "/dev/urandom" , "r");
|
||||
if( !urandomFile ){
|
||||
perror("Could not open file for reading...");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
while(1){
|
||||
fread( &number, sizeof(uint16_t), 1, urandomFile);
|
||||
if( number == 42){
|
||||
break;
|
||||
}
|
||||
printf( "0x%x %u %d\n" , number, number, number );
|
||||
|
||||
}
|
||||
fclose(urandomFile);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
141633
Assignment 1/excercise3/grep
Normal file
141633
Assignment 1/excercise3/grep
Normal file
File diff suppressed because one or more lines are too long
10
Assignment 1/excercise3/lines.txt
Normal file
10
Assignment 1/excercise3/lines.txt
Normal file
@ -0,0 +1,10 @@
|
||||
1537
|
||||
12731
|
||||
5948
|
||||
56298
|
||||
162176
|
||||
13281
|
||||
18465
|
||||
97358
|
||||
172118
|
||||
115888
|
215
Assignment 1/exercise3c
Normal file
215
Assignment 1/exercise3c
Normal file
@ -0,0 +1,215 @@
|
||||
Read 0xffffff8f 4294967183 -113 from /dev/urandom
|
||||
Read 0xfffffffa 4294967290 -6 from /dev/urandom
|
||||
Read 0x78 120 120 from /dev/urandom
|
||||
Read 0xffffffc4 4294967236 -60 from /dev/urandom
|
||||
Read 0xffffffe8 4294967272 -24 from /dev/urandom
|
||||
Read 0x18 24 24 from /dev/urandom
|
||||
Read 0x70 112 112 from /dev/urandom
|
||||
Read 0xffffffab 4294967211 -85 from /dev/urandom
|
||||
Read 0x5c 92 92 from /dev/urandom
|
||||
Read 0xf 15 15 from /dev/urandom
|
||||
Read 0x49 73 73 from /dev/urandom
|
||||
Read 0x40 64 64 from /dev/urandom
|
||||
Read 0x6c 108 108 from /dev/urandom
|
||||
Read 0xffffffa1 4294967201 -95 from /dev/urandom
|
||||
Read 0x75 117 117 from /dev/urandom
|
||||
Read 0x58 88 88 from /dev/urandom
|
||||
Read 0xfffffff6 4294967286 -10 from /dev/urandom
|
||||
Read 0xffffffec 4294967276 -20 from /dev/urandom
|
||||
Read 0x6d 109 109 from /dev/urandom
|
||||
Read 0xffffffb2 4294967218 -78 from /dev/urandom
|
||||
Read 0xfffffff9 4294967289 -7 from /dev/urandom
|
||||
Read 0x17 23 23 from /dev/urandom
|
||||
Read 0xffffffc4 4294967236 -60 from /dev/urandom
|
||||
Read 0x62 98 98 from /dev/urandom
|
||||
Read 0xffffff80 4294967168 -128 from /dev/urandom
|
||||
Read 0xffffff9e 4294967198 -98 from /dev/urandom
|
||||
Read 0x13 19 19 from /dev/urandom
|
||||
Read 0xffffffc6 4294967238 -58 from /dev/urandom
|
||||
Read 0x7d 125 125 from /dev/urandom
|
||||
Read 0x47 71 71 from /dev/urandom
|
||||
Read 0x4d 77 77 from /dev/urandom
|
||||
Read 0x71 113 113 from /dev/urandom
|
||||
Read 0x16 22 22 from /dev/urandom
|
||||
Read 0x65 101 101 from /dev/urandom
|
||||
Read 0xffffffae 4294967214 -82 from /dev/urandom
|
||||
Read 0xffffffb3 4294967219 -77 from /dev/urandom
|
||||
Read 0xffffffa8 4294967208 -88 from /dev/urandom
|
||||
Read 0xffffff94 4294967188 -108 from /dev/urandom
|
||||
Read 0x72 114 114 from /dev/urandom
|
||||
Read 0xfffffff9 4294967289 -7 from /dev/urandom
|
||||
Read 0xffffff9d 4294967197 -99 from /dev/urandom
|
||||
Read 0x35 53 53 from /dev/urandom
|
||||
Read 0x69 105 105 from /dev/urandom
|
||||
Read 0x20 32 32 from /dev/urandom
|
||||
Read 0x7 7 7 from /dev/urandom
|
||||
Read 0x2d 45 45 from /dev/urandom
|
||||
Read 0x31 49 49 from /dev/urandom
|
||||
Read 0x5c 92 92 from /dev/urandom
|
||||
Read 0xfffffffd 4294967293 -3 from /dev/urandom
|
||||
Read 0x37 55 55 from /dev/urandom
|
||||
Read 0xffffffde 4294967262 -34 from /dev/urandom
|
||||
Read 0x58 88 88 from /dev/urandom
|
||||
Read 0x29 41 41 from /dev/urandom
|
||||
Read 0x42 66 66 from /dev/urandom
|
||||
Read 0xffffffa8 4294967208 -88 from /dev/urandom
|
||||
Read 0x13 19 19 from /dev/urandom
|
||||
Read 0x8 8 8 from /dev/urandom
|
||||
Read 0x9 9 9 from /dev/urandom
|
||||
Read 0x6d 109 109 from /dev/urandom
|
||||
Read 0x6a 106 106 from /dev/urandom
|
||||
Read 0x6f 111 111 from /dev/urandom
|
||||
Read 0x38 56 56 from /dev/urandom
|
||||
Read 0x57 87 87 from /dev/urandom
|
||||
Read 0xffffffce 4294967246 -50 from /dev/urandom
|
||||
Read 0xffffffb3 4294967219 -77 from /dev/urandom
|
||||
Read 0x68 104 104 from /dev/urandom
|
||||
Read 0xffffffad 4294967213 -83 from /dev/urandom
|
||||
Read 0xffffffa0 4294967200 -96 from /dev/urandom
|
||||
Read 0x34 52 52 from /dev/urandom
|
||||
Read 0xffffffff 4294967295 -1 from /dev/urandom
|
||||
Read 0x4e 78 78 from /dev/urandom
|
||||
Read 0xffffff84 4294967172 -124 from /dev/urandom
|
||||
Read 0xffffffe9 4294967273 -23 from /dev/urandom
|
||||
Read 0x7e 126 126 from /dev/urandom
|
||||
Read 0xffffffaa 4294967210 -86 from /dev/urandom
|
||||
Read 0xffffffc3 4294967235 -61 from /dev/urandom
|
||||
Read 0xffffffc3 4294967235 -61 from /dev/urandom
|
||||
Read 0x77 119 119 from /dev/urandom
|
||||
Read 0x72 114 114 from /dev/urandom
|
||||
Read 0xffffff9b 4294967195 -101 from /dev/urandom
|
||||
Read 0xfffffff9 4294967289 -7 from /dev/urandom
|
||||
Read 0xffffffc9 4294967241 -55 from /dev/urandom
|
||||
Read 0xffffffda 4294967258 -38 from /dev/urandom
|
||||
Read 0xffffff8b 4294967179 -117 from /dev/urandom
|
||||
Read 0x58 88 88 from /dev/urandom
|
||||
Read 0x17 23 23 from /dev/urandom
|
||||
Read 0xffffffb9 4294967225 -71 from /dev/urandom
|
||||
Read 0xffffffcd 4294967245 -51 from /dev/urandom
|
||||
Read 0xffffffd3 4294967251 -45 from /dev/urandom
|
||||
Read 0x28 40 40 from /dev/urandom
|
||||
Read 0xfffffffb 4294967291 -5 from /dev/urandom
|
||||
Read 0xffffff80 4294967168 -128 from /dev/urandom
|
||||
Read 0x51 81 81 from /dev/urandom
|
||||
Read 0xffffff85 4294967173 -123 from /dev/urandom
|
||||
Read 0xfffffff6 4294967286 -10 from /dev/urandom
|
||||
Read 0xffffffcc 4294967244 -52 from /dev/urandom
|
||||
Read 0x10 16 16 from /dev/urandom
|
||||
Read 0xffffffb5 4294967221 -75 from /dev/urandom
|
||||
Read 0xffffffa8 4294967208 -88 from /dev/urandom
|
||||
Read 0x1c 28 28 from /dev/urandom
|
||||
Read 0x21 33 33 from /dev/urandom
|
||||
Read 0xffffffe7 4294967271 -25 from /dev/urandom
|
||||
Read 0x7d 125 125 from /dev/urandom
|
||||
Read 0xffffff9c 4294967196 -100 from /dev/urandom
|
||||
Read 0xffffff83 4294967171 -125 from /dev/urandom
|
||||
Read 0x45 69 69 from /dev/urandom
|
||||
Read 0x14 20 20 from /dev/urandom
|
||||
Read 0xffffffd9 4294967257 -39 from /dev/urandom
|
||||
Read 0x6 6 6 from /dev/urandom
|
||||
Read 0xffffffc6 4294967238 -58 from /dev/urandom
|
||||
Read 0x31 49 49 from /dev/urandom
|
||||
Read 0xffffffdd 4294967261 -35 from /dev/urandom
|
||||
Read 0x39 57 57 from /dev/urandom
|
||||
Read 0x15 21 21 from /dev/urandom
|
||||
Read 0xffffff8b 4294967179 -117 from /dev/urandom
|
||||
Read 0x7d 125 125 from /dev/urandom
|
||||
Read 0x6e 110 110 from /dev/urandom
|
||||
Read 0xffffff8c 4294967180 -116 from /dev/urandom
|
||||
Read 0x1e 30 30 from /dev/urandom
|
||||
Read 0x15 21 21 from /dev/urandom
|
||||
Read 0x20 32 32 from /dev/urandom
|
||||
Read 0x4d 77 77 from /dev/urandom
|
||||
Read 0xffffff90 4294967184 -112 from /dev/urandom
|
||||
Read 0xffffffe0 4294967264 -32 from /dev/urandom
|
||||
Read 0xfffffffb 4294967291 -5 from /dev/urandom
|
||||
Read 0xffffffbc 4294967228 -68 from /dev/urandom
|
||||
Read 0x54 84 84 from /dev/urandom
|
||||
Read 0x39 57 57 from /dev/urandom
|
||||
Read 0xffffff9d 4294967197 -99 from /dev/urandom
|
||||
Read 0x46 70 70 from /dev/urandom
|
||||
Read 0x26 38 38 from /dev/urandom
|
||||
Read 0x7e 126 126 from /dev/urandom
|
||||
Read 0xffffffa3 4294967203 -93 from /dev/urandom
|
||||
Read 0x6f 111 111 from /dev/urandom
|
||||
Read 0xffffff9b 4294967195 -101 from /dev/urandom
|
||||
Read 0x4b 75 75 from /dev/urandom
|
||||
Read 0x4 4 4 from /dev/urandom
|
||||
Read 0x4c 76 76 from /dev/urandom
|
||||
Read 0x29 41 41 from /dev/urandom
|
||||
Read 0xffffffdf 4294967263 -33 from /dev/urandom
|
||||
Read 0x48 72 72 from /dev/urandom
|
||||
Read 0xffffffea 4294967274 -22 from /dev/urandom
|
||||
Read 0x7c 124 124 from /dev/urandom
|
||||
Read 0x61 97 97 from /dev/urandom
|
||||
Read 0xffffff8d 4294967181 -115 from /dev/urandom
|
||||
Read 0xffffff8f 4294967183 -113 from /dev/urandom
|
||||
Read 0x27 39 39 from /dev/urandom
|
||||
Read 0xffffff85 4294967173 -123 from /dev/urandom
|
||||
Read 0x1e 30 30 from /dev/urandom
|
||||
Read 0x49 73 73 from /dev/urandom
|
||||
Read 0xffffffd8 4294967256 -40 from /dev/urandom
|
||||
Read 0xfffffff2 4294967282 -14 from /dev/urandom
|
||||
Read 0x4c 76 76 from /dev/urandom
|
||||
Read 0xffffffb2 4294967218 -78 from /dev/urandom
|
||||
Read 0x62 98 98 from /dev/urandom
|
||||
Read 0x26 38 38 from /dev/urandom
|
||||
Read 0xffffff87 4294967175 -121 from /dev/urandom
|
||||
Read 0x58 88 88 from /dev/urandom
|
||||
Read 0xffffffe8 4294967272 -24 from /dev/urandom
|
||||
Read 0x59 89 89 from /dev/urandom
|
||||
Read 0xa 10 10 from /dev/urandom
|
||||
Read 0x62 98 98 from /dev/urandom
|
||||
Read 0x71 113 113 from /dev/urandom
|
||||
Read 0xffffffb4 4294967220 -76 from /dev/urandom
|
||||
Read 0xe 14 14 from /dev/urandom
|
||||
Read 0xffffffd3 4294967251 -45 from /dev/urandom
|
||||
Read 0x3a 58 58 from /dev/urandom
|
||||
Read 0x7e 126 126 from /dev/urandom
|
||||
Read 0x79 121 121 from /dev/urandom
|
||||
Read 0x77 119 119 from /dev/urandom
|
||||
Read 0xffffffbd 4294967229 -67 from /dev/urandom
|
||||
Read 0x5e 94 94 from /dev/urandom
|
||||
Read 0xffffffc9 4294967241 -55 from /dev/urandom
|
||||
Read 0xffffffd0 4294967248 -48 from /dev/urandom
|
||||
Read 0xffffffe3 4294967267 -29 from /dev/urandom
|
||||
Read 0x7 7 7 from /dev/urandom
|
||||
Read 0xffffffdf 4294967263 -33 from /dev/urandom
|
||||
Read 0xffffff91 4294967185 -111 from /dev/urandom
|
||||
Read 0x62 98 98 from /dev/urandom
|
||||
Read 0x57 87 87 from /dev/urandom
|
||||
Read 0x3b 59 59 from /dev/urandom
|
||||
Read 0x68 104 104 from /dev/urandom
|
||||
Read 0x62 98 98 from /dev/urandom
|
||||
Read 0xffffff97 4294967191 -105 from /dev/urandom
|
||||
Read 0xffffffb1 4294967217 -79 from /dev/urandom
|
||||
Read 0x71 113 113 from /dev/urandom
|
||||
Read 0x5e 94 94 from /dev/urandom
|
||||
Read 0x9 9 9 from /dev/urandom
|
||||
Read 0xffffffeb 4294967275 -21 from /dev/urandom
|
||||
Read 0x68 104 104 from /dev/urandom
|
||||
Read 0x34 52 52 from /dev/urandom
|
||||
Read 0xffffffe9 4294967273 -23 from /dev/urandom
|
||||
Read 0xffffffc1 4294967233 -63 from /dev/urandom
|
||||
Read 0x74 116 116 from /dev/urandom
|
||||
Read 0x8 8 8 from /dev/urandom
|
||||
Read 0xffffffd3 4294967251 -45 from /dev/urandom
|
||||
Read 0xffffffb4 4294967220 -76 from /dev/urandom
|
||||
Read 0xffffffd1 4294967249 -47 from /dev/urandom
|
||||
Read 0xffffffab 4294967211 -85 from /dev/urandom
|
||||
Read 0xffffffde 4294967262 -34 from /dev/urandom
|
||||
Read 0xffffff84 4294967172 -124 from /dev/urandom
|
||||
Read 0xffffffff 4294967295 -1 from /dev/urandom
|
||||
Read 0xffffff83 4294967171 -125 from /dev/urandom
|
||||
Read 0xfffffffa 4294967290 -6 from /dev/urandom
|
||||
Read 0xffffffe8 4294967272 -24 from /dev/urandom
|
||||
Read 0xffffff9f 4294967199 -97 from /dev/urandom
|
||||
Read 0xffffffa5 4294967205 -91 from /dev/urandom
|
||||
Read 0xfffffff4 4294967284 -12 from /dev/urandom
|
||||
Read 0x7a 122 122 from /dev/urandom
|
||||
Read 0xffffff8d 4294967181 -115 from /dev/urandom
|
||||
Read 0xffffff8b 4294967179 -117 from /dev/urandom
|
||||
Read 0x60 96 96 from /dev/urandom
|
||||
Read 0xffffffd4 4294967252 -44 from /dev/urandom
|
||||
Read 0x7d 125 125 from /dev/urandom
|
||||
Read 0xffffffce 4294967246 -50 from /dev/urandom
|
33
Assignment 2/exercise1.c
Normal file
33
Assignment 2/exercise1.c
Normal file
@ -0,0 +1,33 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void print_memory_layout (char *data, int size );
|
||||
|
||||
int main (void)
|
||||
{
|
||||
short i = 0x1234;
|
||||
char x = -127;
|
||||
long sn1 = 1489156464;
|
||||
long sn2 = 1541654916;
|
||||
int y[2] = {0x11223344,0x44332211};
|
||||
|
||||
printf("Size in bytes of i: %d\n", sizeof (i));
|
||||
printf("Size in bytes of x: %d\n", sizeof(x));
|
||||
printf("Size in bytes of sn1: %d\n", sizeof(sn1));
|
||||
printf("Size in bytes of sn2: %d\n", sizeof(sn2));
|
||||
printf("Size in bytes of y: %d\n", sizeof(y));
|
||||
|
||||
// Print memory layout
|
||||
printf( "Address\t\tContent (hex)\tContent(dec)\n");
|
||||
print_memory_layout((char *)&i , sizeof(i));
|
||||
print_memory_layout((char *)&x , sizeof(x));
|
||||
print_memory_layout((char *)&sn1, sizeof(sn1));
|
||||
print_memory_layout((char *)&sn2, sizeof(sn2));
|
||||
print_memory_layout((char *)&sn1, sizeof(y));
|
||||
|
||||
}
|
||||
|
||||
void print_memory_layout (char *data , int size){
|
||||
for( int i = 0 ; i < size ; i++ ){
|
||||
printf("0x%08x\t0x%08x\t\%d\n", &data[i], data[i],data[i]);
|
||||
}
|
||||
}
|
33
Assignment 2/exercise1.txt
Normal file
33
Assignment 2/exercise1.txt
Normal file
@ -0,0 +1,33 @@
|
||||
Size in bytes of i: 2
|
||||
Size in bytes of x: 1
|
||||
Size in bytes of sn1: 8
|
||||
Size in bytes of sn2: 8
|
||||
Size in bytes of y: 8
|
||||
Address Content (hex) Content(dec)
|
||||
0x69caf3ae 0x00000034 52
|
||||
0x69caf3af 0x00000012 18
|
||||
0x69caf3ad 0xffffff81 -127
|
||||
0x69caf3b0 0x00000070 112
|
||||
0x69caf3b1 0xffffffb9 -71
|
||||
0x69caf3b2 0xffffffc2 -62
|
||||
0x69caf3b3 0x00000058 88
|
||||
0x69caf3b4 0x00000000 0
|
||||
0x69caf3b5 0x00000000 0
|
||||
0x69caf3b6 0x00000000 0
|
||||
0x69caf3b7 0x00000000 0
|
||||
0x69caf3b8 0xffffff84 -124
|
||||
0x69caf3b9 0xffffffc9 -55
|
||||
0x69caf3ba 0xffffffe3 -29
|
||||
0x69caf3bb 0x0000005b 91
|
||||
0x69caf3bc 0x00000000 0
|
||||
0x69caf3bd 0x00000000 0
|
||||
0x69caf3be 0x00000000 0
|
||||
0x69caf3bf 0x00000000 0
|
||||
0x69caf3b0 0x00000070 112
|
||||
0x69caf3b1 0xffffffb9 -71
|
||||
0x69caf3b2 0xffffffc2 -62
|
||||
0x69caf3b3 0x00000058 88
|
||||
0x69caf3b4 0x00000000 0
|
||||
0x69caf3b5 0x00000000 0
|
||||
0x69caf3b6 0x00000000 0
|
||||
0x69caf3b7 0x00000000 0
|
37
Assignment 2/exercise2.c
Normal file
37
Assignment 2/exercise2.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
int main (int argc , char **args){
|
||||
// How many bytes does the bool type use?
|
||||
bool test = true;
|
||||
printf("Size of bool in bytes: %d\n", sizeof(test));
|
||||
|
||||
// Hex of a boolean when its value is set to true
|
||||
printf("Value of bool (State: True): 0x%08x\n", test);
|
||||
|
||||
// Hex of a boolean when its value is set to false
|
||||
test = false ;
|
||||
printf("Value of bool (state: False): 0x%08x\n", test);
|
||||
|
||||
test = 255;
|
||||
if(test){
|
||||
printf("Bool with a value of 255 is interpreted as true\n");
|
||||
}
|
||||
else{
|
||||
printf("Bool with a value of 255 is interpreted as false\n");
|
||||
}
|
||||
test = -125;
|
||||
if(test){
|
||||
printf("Bool with a value of -125 is interpreted as true\n");
|
||||
}
|
||||
else{
|
||||
printf("Bool with a value of -125 is interpreted as false\n");
|
||||
}
|
||||
test = 0;
|
||||
if(test){
|
||||
printf("Bool with a value of 0 is interpreted as true\n");
|
||||
}
|
||||
else{
|
||||
printf("Bool with a value of 0 is interpreted as false\n");
|
||||
}
|
||||
}
|
11
Assignment 2/exercise3.c
Normal file
11
Assignment 2/exercise3.c
Normal file
@ -0,0 +1,11 @@
|
||||
void addvector(int *r, const int *a, const int *b, unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
for(i=0;i<len;i++)
|
||||
{
|
||||
int *item = (r + i);
|
||||
int a_value = *(a + i);
|
||||
int b_value = *(b + i);
|
||||
(*item) = a_value + b_value ;
|
||||
}
|
||||
}
|
2
Assignment 2/exercise3.h
Normal file
2
Assignment 2/exercise3.h
Normal file
@ -0,0 +1,2 @@
|
||||
void addvector(int *r, const int *a, const int *b, unsigned int len);
|
||||
|
22
Assignment 2/main.c
Normal file
22
Assignment 2/main.c
Normal file
@ -0,0 +1,22 @@
|
||||
#include <stdio.h>
|
||||
#include "exercise3.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int a[10], b[10], r[10];
|
||||
unsigned int i;
|
||||
|
||||
for(i=0;i<10;i++)
|
||||
{
|
||||
a[i] = b[i] = i;
|
||||
}
|
||||
|
||||
addvector(r, a, b, 10);
|
||||
|
||||
for(i=0;i<10;i++)
|
||||
{
|
||||
printf("%d %d %d\n", a[i], b[i], r[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
17
Assignment 2/memcmp.c
Normal file
17
Assignment 2/memcmp.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include<stdlib.h>
|
||||
|
||||
// implementation of memcmp
|
||||
|
||||
int memcmp ( void *a, void *b, size_t n){
|
||||
unsigned int i;
|
||||
for ( i = 0; i < n ; i++) {
|
||||
char *a1 = a + i;
|
||||
char *b1 = b + i;
|
||||
|
||||
char return_value = *a1 - *b1;
|
||||
if( return_value != 0)
|
||||
return (int)return_value;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
2
Assignment 2/memcmp.h
Normal file
2
Assignment 2/memcmp.h
Normal file
@ -0,0 +1,2 @@
|
||||
int memcmp ( void *a, void *b, size_t n);
|
||||
|
48
Assignment 2/memcmp_test.c
Normal file
48
Assignment 2/memcmp_test.c
Normal file
@ -0,0 +1,48 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
void print_array(int *array, size_t size);
|
||||
|
||||
int main ( int argc , char **argv )
|
||||
{
|
||||
|
||||
// Test cases
|
||||
int *test1 = malloc(3 * sizeof(int));
|
||||
int *test1_2 = malloc(3 * sizeof(int));
|
||||
|
||||
*(test1) = *(test1_2) = 1;
|
||||
*(test1 + 1) = *(test1_2 + 1) = 2;
|
||||
*(test1 + 2) = *(test1_2 + 2) = 3;
|
||||
|
||||
int result;
|
||||
|
||||
|
||||
result = memcmp(test1, test1_2, 0 );
|
||||
|
||||
printf ("Result should: 0 got %d\n", result);
|
||||
|
||||
result = memcmp(test1, test1_2, 3);
|
||||
|
||||
printf("Result should: 0 got %d\n", result);
|
||||
|
||||
*(test1 + 2) = 5;
|
||||
printf("Array 1:");
|
||||
print_array(test1, 3);
|
||||
printf("Array 2:");
|
||||
print_array(test1_2, 3);
|
||||
|
||||
|
||||
result = memcmp(test1, test1_2, 3);
|
||||
|
||||
printf("Result should: 0 got %d\n", result);
|
||||
|
||||
free (test1);
|
||||
free(test1_2);
|
||||
}
|
||||
|
||||
void print_array(int *array, size_t size){
|
||||
for( int i =0; i < size; i++){
|
||||
printf( "%d\n", *(array+i));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user