void newchar(char *a)
{
a=new char[20];
}
void f()
{
char *aa=NULL;
        newchar(aa);
}

解决方案 »

  1.   

    在newchar函数中的局部申请,在f中是不可以用的
      

  2.   

    newchar函数中的局部申请
    是不是我要GlobalAlloc才能保证
    f()中aa能申请到空间啊?
    谢谢!!!!!
      

  3.   

    newchar函数不能传递动态内存
    不知道你有没有看过《高质量C/C++编程》这本书,上面就有提到这个问题。
    ==========================================================
    void GetMemory(char *p)
    {
        p = (char *)malloc(100);
    }void Test(void) 
    {
        char *str = NULL;GetMemory(str);
        strcpy(str, "hello world");
        printf(str);
    }
    请问运行Test函数会有什么样的结果?
    答:程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的 str一直都是 NULL。strcpy(str, "hello world");将使程序崩溃。
      

  4.   

    char* newchar(char *a)
    {
    return new char[20];
    }
    void f()
    {
            char *aa=NULL;
            aa=newchar();
    }
    或者
    void newchar(char **a)
    {
    *a=new char[20];
    }
    void f()
    {
    char *aa=NULL;
             newchar(&aa);
    }
    都可以得到空间
      

  5.   

    呵呵,我想知道用GlobalAlloc等能不能实现,谢谢!