fshb_ 1370
شنبه 23 مرداد 1389, 15:58 عصر
سلام
تو این برنامه وقتی p3=p3+1 میشه، element بعدی آرایه رو نشون میده، مگه double، 8 بایت از حافظه رو اشغال نمیکنه؟ پس باید نوشته بشه p3=p3+8 تا pointer به element بعدی اشاره کنه. ولی مورد اول درسته، چرا؟
#include <iostream>
using namespace std;
int main()
{
double * p3 = new double [3]; // space for 3 doubles
p3[0] = 0.2; // treat p3 like an array name
p3[1] = 0.5;
p3[2] = 0.8;
cout << "p3[1] is " << p3[1] << ".\n";
p3 = p3 + 1; // increment the pointer
cout << "Now p3[0] is " << p3[0] << " and ";
cout << "p3[1] is " << p3[1] << ".\n";
p3 = p3 - 1; // point back to beginning
delete [] p3; // free the memory
return 0;
}
تو این برنامه وقتی p3=p3+1 میشه، element بعدی آرایه رو نشون میده، مگه double، 8 بایت از حافظه رو اشغال نمیکنه؟ پس باید نوشته بشه p3=p3+8 تا pointer به element بعدی اشاره کنه. ولی مورد اول درسته، چرا؟
#include <iostream>
using namespace std;
int main()
{
double * p3 = new double [3]; // space for 3 doubles
p3[0] = 0.2; // treat p3 like an array name
p3[1] = 0.5;
p3[2] = 0.8;
cout << "p3[1] is " << p3[1] << ".\n";
p3 = p3 + 1; // increment the pointer
cout << "Now p3[0] is " << p3[0] << " and ";
cout << "p3[1] is " << p3[1] << ".\n";
p3 = p3 - 1; // point back to beginning
delete [] p3; // free the memory
return 0;
}