0

私はリンクされたリストを扱っており、リスト内の最初の「ルート」リンクのアドレスを持つグローバル変数を持つことが本当に有益であると判断しました。

次に、この「ルート」リンクを開始参照として使用する他の関数をいくつか用意します。

これはどのように行うことができますか?

私の試みは(一般的に):

int rootAddress = 0;

int main(){
    //EDIT float *ptr = 5; -> my mistake there is not 'float' in my code
    int *ptr = 5;             //but I still get these warnings
    rootAddress = ptr;

    return 0;
}

int laterFunction(){
   // float *ptr = rootAddress;
    int *ptr = rootAddress;
    return 0;
}

2つの警告が表示されますが:

warning: initialization makes pointer from integer without cast
warning: assignment makes integer from pointer without cast

これを行う適切な方法は何ですか、またはこのアプローチが効率的でない場合、一般的にこの「ルート」ポインターを保存する最良の方法は何ですか?

4

3 に答える 3

1
float * rootAddress = NULL;

int main(){
float *ptr = (float *)malloc(sizeof(float));
*ptr = 5.0;
rootAddress = ptr;

return 0;

}

int laterFunction(){
   float *ptr = rootAddress;
    return 0;

}

すべてのポインタが同じ型であることを確認する必要があります。あるタイプから別のタイプに強制的にキャストしないように注意してください。

于 2013-08-15T04:09:15.650 に答える