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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

3 回答

?
翻閱古今

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

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

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

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

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



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

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

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

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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