[ad_1]
コード 1:
int *pint = nullptr;
パイント = 新しい整数;
if (パイント == nullptr)
*パイント = 100;
それ以外
cout << "メモリ割り当てエラー\n";
コード 2:
void doSomething(int * const ptr)
{
int localArray[] = { 1, 2, 3 };
ptr = localArray;
}
私が試したこと:
コード 1:
int *pint = nullptr;
パイント = 新しい整数;
int x;
もし (パイント == &x)
*パイント = 100;
それ以外
cout << "メモリ割り当てエラー\n";
コード 2:
void doSomething(int * ptr)
{
int localArray[] = { 1, 2, 3 };
ptr = localArray;
}
解決策 1
テストの比較を確認します。 あなたが持っている
if ( pint == nullptr ) *pint = 100;
これはまさに裏返しです。 もしも pint
の後は NULL です new
演算子の場合、メモリの割り当てに失敗しました。 おそらく、ポインターに値 (値 0) を代入しようとすると、プログラムがクラッシュします。
解決策 2
私たちは立ち往生している人々を喜んで助けますが、それは私たちがあなたのためにすべてをするためにここにいるという意味ではありません! 私たちがすべての作業を行うことはできません。あなたはこれに対して報酬を受け取っているか、またはそれはあなたの成績の一部であり、私たちがあなたのためにすべてを行うことはまったく公平ではありません.
コードを読んで、それが何をするのか、なぜそれが問題になるのかを理解することから始めます。
ヒント: 最初の課題でこの行を実行するとどうなりますか?
*pint = 100;
[ad_2]
コメント