C - 将未初始化的变量传递给函数

时间:2013-10-21 18:53:46

标签: c function pointers initialization declaration

假设我有一个char * str但我还不知道它的大小,所以我只能声明它。然后我将它传递给一个函数,这个函数将知道它的大小,所以它将初始化并设置它。我怎么能这样做?

char * str;
func(&str);

void func(char ** str) {
    // initialize str...
}

1 个答案:

答案 0 :(得分:2)

#define SIZE 10  //or some other value  

const int SIZE = 10;   //or some other value  

然后:

void init( char** ptr) // pass a pointer to your char*
{
    *ptr= malloc( SIZE ); //of any size
}

int main()
{
    char *str;
    init( &str ); //address of pointer str
    //...Processing

    free(str);
    return 0;
}