これは私のC++コードです。
私によると、それは与える必要があり、出力:
ABC
ごみ
ABC
しかし、それは与えている出力:
ABC
ごみ
ごみchar ** function()では、char配列の動的割り当てが望ましくない結果を返します
#include<bits/stdc++.h>
using namespace std;
char **func()
{
char* PA = new char[10];
PA[0]='a';
PA[1]='b';
PA[2]='c';
PA[3]='\0';
printf("%s\n",PA);
printf("Garbage\n");
char **PPA = &PA;
return PPA;
}
int main()
{
printf("%s\n",*func());
return 0;
}
私が間違っているの?
ローカル変数「PA」のアドレスを返します。ローカル変数アドレスを返す – mch
はUBです。期間。 –
http://stackoverflow.com/q/31816095/560648 –