亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么不能這樣分配內存呢

char *str = new char(100);

正在回答

3 回答

你再回去認真聽聽老師是怎么講解的,圓括號()是賦初值的,要申請一百個char應該寫為char【100】

0 回復 有任何疑惑可以回復我~
#1

南威創 提問者

哦~~謝謝
2017-12-26 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//5a35ca160001ce1606980579.jpg我是說圖1這種,老師上課的時候是可以的,圖2是我結果,以下是我代碼:

#include <string.h>

#include <iostream>

using namespace std;

int main(void)

{

? ? //在堆中申請100個char類型的內存

? ? char *str = new char(100);

???? if(NULL == str)

???? {

???????? system("pause");

???????? return 0;

????}

????

? ? //拷貝Hello C++字符串到分配的堆中的內存中

????strcpy(str, "Hello imooc");

? ? //打印字符串

? ? cout<< str <<endl;

? ? //釋放內存

????delete str;

? ? str = NULL;

????system("pause");

????return 0;

}


0 回復 有任何疑惑可以回復我~
#1

qq_慕虎1144658

你這是申請100個嗎。你這意思就是str指針指的是申請的100這個數,這個100你又給他放char類型里面,后面又給這個char附了個字符串,肯定更錯了
2019-02-27 回復 有任何疑惑可以回復我~

因為內存申請不一定成功啊


0 回復 有任何疑惑可以回復我~
#1

南威創 提問者

看一下我下面的回復,圖二放了,怎么沒有 -_-
2017-12-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之離港篇
  • 參與學習       122678    人
  • 解答問題       493    個

C++掃清通往面向對象的最后一道障礙,將所有知識點融會貫通

進入課程

為什么不能這樣分配內存呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號