1. Pointers allow variables to store the address of other variables in memory. The & operator returns the address of a variable, which can be assigned to a pointer variable. Pointer variables are strongly typed based on the data type they point to.
2. The * operator dereferences a pointer to access or modify the variable being pointed to. Assigning a value to a dereferenced pointer modifies the original variable. Pointers can be assigned to each other as long as they point to compatible types.
3. Dynamic memory allocation with new creates objects in heap memory that persist until deleted. new returns a pointer to the new object. delete removes an object from the heap. Dangling pointers occur after deleting a
COURSE TITLE: SOFTWARE DEVELOPMENT VI
COURSE CODE: VIT 351
TOPICS COVERED:
INTRODUCTION TO POINTERS
TYPES OF POINTERS
POINTERS EXAMPLES
POINTERS ARITHMETICS
ADVANTAGES AND DISADVANTAGES OF POINTERS
STATIC MEMORY ALLOCATION
DYNAMIC MEMORY ALLOCATION
QUIZ SET 3
COURSE TITLE: SOFTWARE DEVELOPMENT VI
COURSE CODE: VIT 351
TOPICS COVERED:
INTRODUCTION TO POINTERS
TYPES OF POINTERS
POINTERS EXAMPLES
POINTERS ARITHMETICS
ADVANTAGES AND DISADVANTAGES OF POINTERS
STATIC MEMORY ALLOCATION
DYNAMIC MEMORY ALLOCATION
QUIZ SET 3
Dynamic Objects,Pointer to function,Array & Pointer,Character String ProcessingMeghaj Mallick
This is an PPT of C++ Programming Language. This includes the various topics such as "Dynamic Objects,Pointer to function,Array & Pointer,Character String Processing ".
Cyber security refers to every aspect of protecting an organization and its employees and assets against cyber threats. As cyberattacks become more common and sophisticated and corporate networks grow more complex, a variety of cyber security solutions are required to mitigate corporate cyber risk.
Dynamic Objects,Pointer to function,Array & Pointer,Character String ProcessingMeghaj Mallick
This is an PPT of C++ Programming Language. This includes the various topics such as "Dynamic Objects,Pointer to function,Array & Pointer,Character String Processing ".
Cyber security refers to every aspect of protecting an organization and its employees and assets against cyber threats. As cyberattacks become more common and sophisticated and corporate networks grow more complex, a variety of cyber security solutions are required to mitigate corporate cyber risk.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
The Indian economy is classified into different sectors to simplify the analysis and understanding of economic activities. For Class 10, it's essential to grasp the sectors of the Indian economy, understand their characteristics, and recognize their importance. This guide will provide detailed notes on the Sectors of the Indian Economy Class 10, using specific long-tail keywords to enhance comprehension.
For more information, visit-www.vavaclasses.com
2. int N = 26;
int *pN; // declare a pointer
pN = &N; // assign the address of N
A pointer variable is able to contain the address of some other variable. The
address-of operator (&) gets the address of a variable.
int * is a data type called pointer to integer.
2
4. double Z = 26;
int *pN;
pN = &Z; // compiler error
Pointer variables are strongly typed. In the following example, pN cannot point to Z
because Z is a double:
4
5. int N = 26;
int *pN = &N;
cout << *pN << endl; // "26"
The dereference operator (*) obtains the contents of the variable that is referenced
by a pointer.
5
6. int N = 26;
int *pN = &N;
*pN = 35;
cout << *pN << endl; // "35"
cout << N << endl; // "35"
The dereference operator can also be used to modify the contents of the referenced
variable.
Assigning a value to *pN changes the value of N.
6
7. int N = 26;
int *pN = &N;
int *pZ;
pZ = pN;
*pZ = 35; // now N = 35
One pointer may be assigned to another, as long as they point to the same type. In
this example, when pZ is dereferenced, it lets us change the value of N:
7
8. int N = 26;
int *pN = &N;
int Z = 0;
int *pZ = &Z;
*pZ = *pN; // Z = 26
Assigning a value from one pointer to another can be done by dereferencing both
pointers.
8
9. You can create pointers to any data type. A pointer to an object is dereferenced with
the -> operator when calling a member function.
9
#include <iostream>
#include <string.h>
using namespace std;
class Employee
{
private:
int id;
char name[60];
double Salary;
public:
Employee():id(0),name(""),Salary(0.0d)
{
cout<<"i am constructor"<<endl;
}
void GetData()
{
cout << "Enter Employee ID: ";
cin >> id;
cin.ignore();
cout << "Enter Employee Name: ";
cin.getline(name,60);
cout << "Enter Employee Salary: ";
cin >> Salary;
cin.ignore();
}
void Display()
{
cout << "The Employee ID: " << id << endl;
cout << "The Employee Name: " << name <<
endl;
cout << "The Employee Salary: " << Salary <<
endl ;
}
};
int main()
{
Employee obj;
Employee *ptremp = &obj;
//ptremp = &obj;
ptremp->GetData();
ptremp->Display();
return 0;
}
10. int n = 30;
int * p;
*p = n; // runtime error
Beware of dereferencing a pointer before it has been initialized. This causes a runtime
error (invalid pointer reference).
10
11. int * pN = NULL;
.
.
// ...later,
if( pN != NULL )
*pN = 35;
NULL is the best default value to assign to a pointer if you cannot assign it the address
of an object. A smart programmer will check for NULL before using the pointer.
11
12. • Use dynamic allocation to create an object at runtime. C++ uses the new operator.
• The object is stored in a large free memory area named the heap (or free store).
• The object remains on the heap either until you remove it or the program ends.
• The delete operator erases an object from the heap.
12
13. int * P = new int;
Create an int object on the heap and assign its address to P:
*P = 25; // assign a value
cout << *P << endl;
Use the pointer in the same way as previous examples:
13
14. Student * pS = new Student;
.
.
// use the student for a while...
.
.
delete pS; // gone!
The new operator returns the address of a new object. The delete operator erases the
object and makes it unavailable.
Student constructor called
14
15. void MySub()
{
Student * pS = new Student;
// use the Student for a while...
delete pS; // delete the Student
} // pS disappears
If you create an object inside a function, you may have to delete the object inside the
same function. In this example, variable pS goes out of scope at the end of the
function block.
15
16. void MySub()
{
Student * pS = new Student;
// use the Student for a while...
} // pS goes out of scope
(the Student's still left on the heap)
A memory leak is an error condition that is created when an object is left on the heap
with no pointer variable containing its address. This might happen if the object's
pointer goes out of scope:
16
17. Student * MakeStudent()
{
Student * pS = new Student;
return pS;
}
A function can return the address of an object that was created on the heap. In this
example, the function's return type is pointer to Student.
17
18. Student * pS;
pS = MakeStudent();
// now pS points to a Student
(continued)...
The caller of the function can receive the address and store it in a pointer variable. As
long as the pointer remains active, the Student object is accessible.
18
19. double * pD = new double;
*pD = 3.523;
.
.
delete pD; // pD is dangling...
.
.
*pD = 4.2; // error!
A dangling pointer is created when you delete its storage and then try to use the
pointer. It no longer points to valid storage and may corrupt the program's data.
19
20. delete pD;
pD = NULL;
.
.
if( pD != NULL ) // check it first...
*pD = 4.2;
To avoid using a dangling pointer, assign NULL to a pointer immediately after it is
deleted.
And, of course, check for NULL before using the pointer.
20
21. void swap( int * A, int * B )
{
int temp = *A;
*A = *B;
*B = temp;
}
Passing a pointer to a function is almost identical to passing by reference. The function
has read/write access to the data referenced by the pointer.
This is how swap() was written in C, before C++ introduced reference parameters:
21
22. void MySub( int * const A )
{
*A = 50; // ok
A++; // error
}
Declaring a constant pointer guarantees only that the pointer itself cannot be modified.
The data referenced by the pointer can still be modified.
22
23. Student * cop3337[10];
for(int i = 0; i < 10; i++)
{
cop3337[i] = new Student;
}
An array of pointers usually contains the addresses of dynamic data objects. This
keeps the storage used by the array itself quite small, and puts most of the data on the
heap.
diagram
23
25. void main()
{
double * samples = new double[10];
// samples is now an array....
samples[0] = 36.2;
delete [] samples;
}
You can create an entire array on the heap, using the new operator. Just remember to
delete it before the program exits. Include "[]" before the array name in the delete
statement.
array size
25