c语言char*如何申请内存,如何为C中的char数组动态分配内存?

我正在学习C中的动态内存.我学到的作为分配和标准的标准方式例如,为任何数据类型动态解除分配

//For double,

double* pvalue1 = nullptr;

pvalue1 = new double;

*pvalue1 = 17.3;

delete pvalue1; //free up when I'm done

但是,对于一个char数组,我了解到它的处理方式不同:

char* pvalue2 = nullptr;

pvalue2 = new char[6];

strncpy(pvalue2,"Hello",sizeof("Hello"));

std::cout << "Pointed-to value of pvalue2 is " << *pvalue2 << std::endl;

std::cout << "Value of pvalue2 is " << pvalue2 << std::endl;

delete [] pvalue2; //free up when I'm done

然后,在命令提示符下:

Pointed-to value of pvalue2 is H

Value of pvalue2 is Hello

>为什么指针pvalue2给出“指向”字符串文字

而不是内存地址?不是“指针值”总是它指向的内存地址吗?

>为什么解除引用只给出数组中的第一个字符?

>在这种情况下,如何获取内存地址?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值