为了账号安全,请及时绑定邮箱和手机立即绑定

内存管理最后的练习题 怎么strcpy(str, "Hello imooc"); 结果只能传一个字母

#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
    //在堆中申请100个char类型的内存
    char *str =new char [100];
    //拷贝Hello C++字符串到分配的堆中的内存中
    strcpy(str, "Hello imooc");
    //打印字符串
    cout<<*str<<endl;
    //释放内存
    delete []str;
    str=NULL;
    return 0;
}

正在回答

2 回答

    cout<<*str<<endl;
    //释放内存


这句是有问题的,直接用str就表示了这一个字符串,而在这里用*str,计算机会认为是str[0]也就是第一个字母

0 回复 有任何疑惑可以回复我~

cout<<str<<endl; 这个就ok了, cout<<str1<<"..."<<*str1<<endl;str已经是一个指针了,指针的指针是指针指向地址的值,字符串的指针指向第一个字符的地址,第一个字符的地址的值就是Hello imooc 的第一个字母,即H

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

内存管理最后的练习题 怎么strcpy(str, "Hello imooc"); 结果只能传一个字母

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信