0

For C programmers.

How can I know if a pointer char *, for example, was initialized by using malloc or realloc? I mean in kind of that function:

char* func(char** x){
    /* need some reallocating of *x but 
     * *x can be a pointer to const string
     */
}
4

1 に答える 1

2

ポインター値だけを見て、ポインターが static 変数または auto 変数を参照しているか、関数を介して割り当てられたメモリを参照しているかを判断する移植可能な方法はありません。プラットフォームのメモリ モデルに精通*allocしている場合は、知識に基づいた推測を行うことができますが、それだけです。

それ以外の場合は、その情報を自分で追跡する必要があります。

于 2013-09-19T18:07:23.027 に答える