C++newの使い方

997 ワード

ナレッジポイントのまとめ:
newは実際にはコンピュータに新しい空間を開くことを教えているが、一般的な宣言とは異なり、newが開いた空間はスタックにあり、一般的な宣言の変数はスタックに格納されている.一般に、ローカル関数においてnewが新しい空間を出すと、ローカル関数呼び出しが終了しても使用でき、主関数にパラメータを伝達するために使用することができる.また注意しなければならないのは、newの使用フォーマットで、newが出てくるのは空間の最初のアドレスです.そのため、一般的にこのアドレスをポインタで保存する必要があります.具体的なコードは以下の通りです.
#include 
using namespace std;

int example1()
{
  //   new      
  int *p = new int(3);
  //       
  //*p = 3;

  //        ,        , new   “*”  new     
  int q = *new int;
  q = 1;
  cout << q << endl;

  return *p;
}

int* example2()
{
  // new     ,               
  int *q = new int[3];
  for(int i=0; i<3; i++)
    q[i] = i;

  return q;
}

struct student
{
  string name;
  int score;
};


student* example3()
{
  //                      
  //       ,                
  student *stlist = new student[3]{{"abc", 90}, {"bac", 78}, {"ccd", 93}};

  return stlist;
}



int main()
{
  int e1 = example1();
  cout <