qq_33515515
Mage???
采纳率40%
2016-02-15 03:13

C语言中二级指针修改数组问题。

已采纳

数组相当于一级指针,我写了一个二级指针被调用。
结果它总是宕机,求指导,谢谢。图片

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • wangzhiyu1980 zy__ 5年前

    这段程序编译会报错吧:
    cannot convert parameter 1 from 'char (*)[100]' to 'char **'

    可以这样 试试看
    #include
    #include
    #include

    int getMemBuf(char*& p2)
    {
    char* tmp = NULL;
    tmp = (char*)malloc(100);
    strcpy(tmp, "aaabbbccc");

    p2 = tmp;
    return 0;
    

    }

    void main()
    {
    int i = 0;
    char* buf;
    getMemBuf(buf);

    printf("%s\n", buf);
    
    free (buf);
    system("pause");
    

    }

    点赞 评论 复制链接分享
  • fk002008 lambda-fk 5年前

    数组名仅仅是“相当”于指针,而并非真的是指针,只是个常量(一个值为数组首元素地址的常量),所以不能进行++或者--运算。
    而常量更是无法取地址的, 你使用的给数组名取地址它代表了数组本身,可不是简单的二级指针

    点赞 评论 复制链接分享
  • 91program 91program 5年前

    数组确实是相当于一级指针,但是是常量指针,其值不能被修改。
    任何试图修改数组名的操作,会引起程序严重异常。

    点赞 评论 复制链接分享

相关推荐