第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于char[] 與char*的問(wèn)題

關(guān)于char[] 與char*的問(wèn)題

C++
RectCircle 2016-01-15 18:37:57
/* 函數(shù)的返回類型是char*?我返回的是?char[]類型, 我跟蹤調(diào)試的時(shí)候返回結(jié)果還是正常,一輸出就亂碼 */ #include<iostream> using?namespace?std; char*?test() { ?char?a[20]=?"abc"; ?return?a; } int?main() { ?char*?a; ?a?=?test(); ?cout?<<?a?<<endl; ?return?0; }
查看完整描述

1 回答

已采納
?
MadMarical

TA貢獻(xiàn)79條經(jīng)驗(yàn) 獲得超122個(gè)贊

你好,你使用了靜態(tài)初始化方法在棧中開(kāi)辟了內(nèi)存空間,但是棧中內(nèi)存是由系統(tǒng)自動(dòng)釋放的,所以當(dāng)test函數(shù)調(diào)用完畢后,a的空間被自動(dòng)釋放。所以你應(yīng)該在堆中開(kāi)辟內(nèi)存空間如例程1或者講a定義為全局變量如例程2。

例程1

#include?<iostream>

using?namespace?std;

char*?test()
{
????char?*a?=?new?char[3];
????*a?=?'a';
????a++;
????*a?=?'b';
????a++;
????*a?=?'c';
????
????return?a;//此時(shí)返回的a為a[2],所以b為c;
}
int?main(int?argc,?const?char?*?argv[])
{
????char*?b;
????b?=?test();
????cout?<<?b?<<endl;
????return?0;
}

例程2

#include?<iostream>

using?namespace?std;

char?a[20]?=?"abc";

char*?test()
{
????return?a;
}
int?main(int?argc,?const?char?*?argv[])
{
????char*?b;
????b?=?test();
????cout?<<?b?<<endl;
????return?0;
}

這是我的見(jiàn)解。

查看完整回答
1 反對(duì) 回復(fù) 2016-01-18
  • 1 回答
  • 0 關(guān)注
  • 1393 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)