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

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

請(qǐng)問在C++構(gòu)造函數(shù)中 如何給類中public作用域下的指針分配空間?如下情況!

請(qǐng)問在C++構(gòu)造函數(shù)中 如何給類中public作用域下的指針分配空間?如下情況!

C++ C
呼啦一陣風(fēng) 2021-11-03 20:07:49
溢出在隱式恒轉(zhuǎn)換,有兩個(gè)指針,連續(xù)分配,警告顯示給第二個(gè)分配空間的指針dev_name = new char(20); RecvDataBuffer = new char(1024); 這是什么原因啊,怎么修改?
查看完整描述

3 回答

?
翻閱古今

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

new char(1024); 括號(hào)中的值太大了,超過char定義的范圍,結(jié)果是無定義的(由實(shí)現(xiàn)定義),所以編譯器給出了一個(gè)警告,這個(gè)算是類型方面的小小錯(cuò)誤。
VC系列:
char : -128 ~ 127
unsigned char : 0 ~ 255
signed char: -128 ~ 127
把括號(hào)中的值該到范圍內(nèi)(-128 ~ 127)就可以了。
看看下面這個(gè):
unsigned char p = 257; // p 等于多少????
signed char p = 128; // p等于多少???

查看完整回答
反對(duì) 回復(fù) 2021-11-07
?
達(dá)令說

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

應(yīng)該改成這樣:
dev_name = new char[20];
RecvDataBuffer = new char[1024];
括號(hào)用錯(cuò)了,
dev_name = new char(20);
分配一個(gè)字節(jié) ,沒有問題,分配同時(shí)初始化 *dev_name= 20,在 0~255 或 -128~127 之間。
RecvDataBuffer = new char(1024);
分配一個(gè)字節(jié) ,分配同時(shí)初始化 *RecvDataBuffer = 1024,問題來了,不在在 0~255 或 -128~127 之間
overflow in implicit constant conversion
溢出在隱式常量轉(zhuǎn)換
看1024 比127 或255大多了,當(dāng)然溢出了!



查看完整回答
反對(duì) 回復(fù) 2021-11-07
?
慕桂英546537

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

你的程序用new是分配一個(gè)字符呢還是分配一段連續(xù)的空間?這個(gè)問題你沒有明確,如果是分配一個(gè)字符的話,第二個(gè)有問題,你括號(hào)里面的是整型值,而char的范圍最大都只能取到255,而1024,明顯溢出了,所以編譯會(huì)出問題,如果是分配數(shù)組的話,應(yīng)該是new 元素類型[分配的大小],不是你所用的括號(hào)

查看完整回答
反對(duì) 回復(fù) 2021-11-07
  • 3 回答
  • 0 關(guān)注
  • 368 瀏覽

添加回答

舉報(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)