void fun()
{
int* dynArr = new int[50];
// use your dynamic array here
// we should delete this created
dynamic memory after finishing
// working with it
delete []dynArr; // comment this, to cause memory-leak
}
1 // Fig. 16.8: Integer.h 2
// Integer class definition. 3 4 class Integer 5 { 6 public: 7
Integer( int i = 0 ); // Integer default constructor 8 ~Integer(); // Integer
destructor 9 void setInteger( int i ); //
functions to set Integer10 int getInteger() const; //
function to return Integer11 private:12 int value;13 }; // end class Integer
1 // Fig.
16.9: Integer.cpp 2 // Integer member function definition. 3 #include 4 using std::cout; 5 using std::endl; 6 7 #include "Integer.h" 8 9 // Integer default constructor10 Integer::Integer( int i )11 : value( i )12 {13 cout << "Constructor
for Integer " << value << endl;14 } // end Integer constructor1516 // Integer destructor17 Integer::~Integer()18 {19 cout << "Destructor
for Integer " << value << endl;20 } // end Integer destructor2122 // set Integer value23 void Integer::setInteger( int i )24 {25 value = i;26 } // end function setInteger2728 // return Integer value29 int Integer::getInteger() const30 {31 return value;32 } // end function getInteger
1 // Fig.
16.10: Fig16_10.cpp 2 // Demonstrating auto_ptr. 3 #include 4 using std::cout; 5 using std::endl; 6 7 #include 8 using std::auto_ptr; // auto_ptr class
definition 910 #include "Integer.h"1112 // use auto_ptr to manipulate Integer object13 int main()14 {15 cout << "Creating an
auto_ptr object that points to an Integer\n";1617 // "aim" auto_ptr at
Integer
object
18 auto_ptr< Integer >
ptrToInteger( new Integer( 7 ) );1920 cout << "\nUsing the
auto_ptr to manipulate the Integer\n";21 ptrToInteger->setInteger( 99
); // use auto_ptr to set Integer value2223 // use auto_ptr to get Integer
value24 cout << "Integer after
setInteger: " << ( *ptrToInteger ).getInteger()25 return 0;26 } // end main
بتاريخ 06/ربيع الأول/1429 04:25 ص، قطب ahmed ezz حاجبيه بشدة وهو يقول:
ونستطيع ان نحاول التقليل من حدوثint *array = new int[15];
try
{
if (!ReadArrayFromFile(fileName))
return false;
}
catch (...)
{
return false;
}
finally
{
delete [] array;
array = 0;
}
#include
#include
#include
using namespace std;
void PrintArray(int arr[], int size)
{
assert( arr != 0 ); // check for null array pointer
assert( size>=1 ); // insure that size is at least 1 or more elements
for(int i=0 ;i {
cout << arr[i] << " ";
}
cout << endl;
}
void main()
{
int *array = 0;
PrintArray(array, 10);
}
هذا المثال ماخوذ من كتاب ال Game Institute c++ module 1في 13 مارس 2008 11:00 ص، قال ahmed ezz بهدوء وتؤدة:
يمكنك دوما استخدامه ليفحص لك قيم المؤشرات بحيث يعطيك رسالة خطأ اذا حاولت استخدام هذا المتغير دون ان تكونfloat distance = sqrt(getPlayerDistanceSquared());
assert(distance >= 0.0f);
في 13 مارس 2008 11:00 ص، عقد ahmed ezz حاجبيه بتفكير وقال:
لانه من المعروف ان بداية اخطاء الذاكرة ومن ضمنها التسريب يكون سببها في البداية استخدام متغيرات من نوع مؤشرات غير صالحة اي لا تشير لنوع#include
#include
void main(void)
{
int iTitleLen = strlen("Prince of Persia");
int iCompanyLen = strlen("Broderbund");
char *pszGameTitle = new char[iTitleLen];
char *pszGameCompany = new char[iCompanyLen];
char *pszFullName = new char[iTitleLen+iCompanyLen+3];
strcpy(pszGameCompany,"Broderbund");
strcpy(pszGameTitle,"Prince of Persia");
sprintf(pszFullName,"%s : %s", pszGameCompany, pszGameTitle);
puts(pszFullName);
delete [] pszGameTitle;
delete [] pszGameCompany;
delete [] pszFullName;
}