LAB03 ArrayPointer
LAB03 ArrayPointer
LAB 3
A. Arrays
1. Simple Array
#include <iostream>
using namespace std;
int main()
{
int sample[10]; // this reserves 10 integer elements
int idx;
return 0;
}
Exercise :
a) Modify the program above by utilizing a constant variable “SIZE” to define the size of the
array to value “10” and making use of this constant value throughout your program.
b) Create a new array of type integer named as “myZeroArray” with number of element as
many as your constant “SIZE” defined earlier and initial with zero “0” value to all
elements in this array in a single statement. Display this array.
c) Create another new array named as “myOtherArray” and initial with 3 different integer
values in this array. Think of a way to display the content of this array without specify
value “3” as the number of element in this array. (Hint: this array is containing int data
type in each element)
TMC1434/TMF1434 Data Structure and Algorithms 2
LAB 3
2. Multidimensional Array
Declaring and Accessing Elements in a Multidimensional Array. Copy the code below
and study how multi-dimensional array is implemented.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int TwoDArray [3][3] = {{-501, 206, 2011},
{989, 101, 206},
{303, 456, 596}};
cout << "Row 0: " << TwoDArray [0][0] << " "
<< TwoDArray [0][1] << " "
<< TwoDArray [0][2] << endl;
cout << "Row 1: " << TwoDArray [1][0] << " "
<< TwoDArray [1][1] << " "
<< TwoDArray [1][2] << endl;
cout << "Row 2: " << TwoDArray [2][0] << " "
<< TwoDArray [2][1] << " "
<< TwoDArray [2][2] << endl;
getch();
return 0;
}
B. POINTERS
1. Single pointer (Single indirection)
#include <iostream>
using namespace std;
int main()
{
int balance;
int *balptr;
int value;
balance = 3200;
balptr = &balance;
value = *balptr;
Exercise :
Modify the program, create a new pointer of type int named it as “newBalance” and copy the
content of balptr to this pointer. Print out the contents of both balptr and newBalance as
well the value of their references.
TMC1434/TMF1434 Data Structure and Algorithms 3
LAB 3
#include <iostream>
using namespace std;
int main()
{
// uninitialized pointer (bad)
int* pTemperature;
cout << "Is it sunny (y/n)?" << endl;
char UserInput = 'y';
cin >> UserInput;
if (UserInput == 'y')
{
pTemperature = new int; //Dynamic memory allocation
*pTemperature = 30;
}
3a. Passing a pointer to a function. Copy the study the code below.
#include <iostream>
using namespace std;
void f(int *j);
int main()
{
int i;
int *p;
p = &i; // p now points to i
f(p);
cout << i; // i is now 100
return 0;
}
int main()
{
int i;
f(&i);
cout << i;
return 0;
}
#include <iostream>
using namespace std;
void display(int num[10]);
int main()
{
int t[10],i;
for(i=0; i<10; ++i)
t[i]=i;
#include <iostream>
using namespace std;
void cube(int *n, int num);
int main()
{
int i, nums[10];
for(i=0; i<10; i++) nums[i] = i+1;
cout << "Original contents: ";
Original contents: 1 2 3 4 5 6 7 8 9 10
Altered contents: 1 8 27 64 125 216 343 512 729 1000
TMC1434/TMF1434 Data Structure and Algorithms 6
LAB 3
Self-Practice Exercises
#include <iostream>
using namespace std;
int main(){
int number[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *pNumbers = number;
cout << "Values - Using the Array";
cout << "\n number[0]: " << number[0];
cout << "\n number[1]: " << number[1];
cout << "\n number[2]: " << number[2];
cout << "\n number[3]: " << number[3];
cout << "\n number[4]: " << number[4];
In the following program, extracts words, separated by spaces, from a string. For example,
given "Hello Tom," the program would extract "Hello" and "Tom." For example, if you enter
This is a test. the program displays the following:
This
is
a
test.
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char str[80];
char token[80];
int i, j;
if(!str[i]) break;
}
return 0;
}
TMC1434/TMF1434 Data Structure and Algorithms 8
LAB 3
B-2 Exercise:
This program acts similar way as program B-1 in previous section, here is the pointer
version of the tokenizing program: (You may only use a single array or two arrays as in
program B-1)
#include <iostream>
using namespace std;
int main(){
char str[20] = "This is a test";
cout << "\n\n*Content of str array: \n";
B-3: This program acts similar way as program B-1 in previous section, here is the pointer
version of the tokenizing program:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char str[80];
char token[80];
char *p, *q;
p = str;