none
给二维数组赋值的函数 RRS feed

  • 问题

  • 写函数a给二维数组赋值,然后返回。用s接收。总是错误。谁能给段实现二维数组赋值的代码么
    char ** a()
    {
      char s[50][100];
      for(i=0;i<3;i++)
       {
       strcat(s[i],"fe")
       }
    return (char **)s;
    }
    ////////////
    char *s=null;
    s=a;本人学c不久。指针有时候不是很明白,哪位大哥能指教,感激不尽

    2011年3月17日 7:40

答案

  • 这个指针用的不对,你的char s[][]指针是一个只在a函数里生效的指针,返回到上一层他就被系统释放了,然后你会收到报错

    最简单的改法这样写(加上static就不会被释放了,但是一般不这样写)

    char ** a()
    {
      static char s[50][100];
      for(int i=0;i<3;i++)
       {
       strcat(s[i],"fe");
       }
    return (char **)s;
    }

    不过最好还是找本指针教学的书来学习一下吧


    0xBAADF00D
    2011年3月17日 15:44
    版主

全部回复

  • 这个指针用的不对,你的char s[][]指针是一个只在a函数里生效的指针,返回到上一层他就被系统释放了,然后你会收到报错

    最简单的改法这样写(加上static就不会被释放了,但是一般不这样写)

    char ** a()
    {
      static char s[50][100];
      for(int i=0;i<3;i++)
       {
       strcat(s[i],"fe");
       }
    return (char **)s;
    }

    不过最好还是找本指针教学的书来学习一下吧


    0xBAADF00D
    2011年3月17日 15:44
    版主
  • 非常感谢,本人一定抓紧基本功的学习
    2011年3月18日 6:51