Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何更改指向不同对象的指针?_C_Pointers - Fatal编程技术网

C 如何更改指向不同对象的指针?

C 如何更改指向不同对象的指针?,c,pointers,C,Pointers,我有一个带值的集合,我想分配一个指针指向集合中的一个项 下面是一个不起作用的类似示例: void changeVar(int * var) { int newInteger = 99; var = &newInteger; } int main() { // create a random pointer and initialize to NULL int * randomPointer= 0; // the printf p

我有一个带值的集合,我想分配一个指针指向集合中的一个项

下面是一个不起作用的类似示例:

void changeVar(int * var) {
        int newInteger = 99;
        var = &newInteger;
}

int main() {
    // create a random pointer and initialize to NULL
    int * randomPointer= 0;

    // the printf prints out it's address as 0. good.
    printf("address: %d \n\r",  randomPointer);

    // pass the pointer to a function which should change where the pointer points
    changeVar(randomPointer);

    // the printf below should print the value of the newInteger and randomPointer should point to newInteger value address
    printf("value: %d \n\r", *randomPointer);

return 0;
}
如何使changeVar函数之后的随机指针指向newInteger的地址


PS.
randomPointer
必须是指针

要将对
var的更改传播回调用方,您需要通过指针传递
var

void changeVar(int** var) {
        (*var) = ...;
}

也就是说,
newInteger
changeVar
返回时超出范围,因此在此之后不应保留指向它的指针。取消对此类指针的引用将导致。

要将对
var的更改传播回调用方,您需要通过指针传递
var

void changeVar(int** var) {
        (*var) = ...;
}

也就是说,
newInteger
changeVar
返回时超出范围,因此在此之后不应保留指向它的指针。取消对此类指针的引用将导致。

要将对
var的更改传播回调用方,您需要通过指针传递
var

void changeVar(int** var) {
        (*var) = ...;
}

也就是说,
newInteger
changeVar
返回时超出范围,因此在此之后不应保留指向它的指针。取消对此类指针的引用将导致。

要将对
var的更改传播回调用方,您需要通过指针传递
var

void changeVar(int** var) {
        (*var) = ...;
}

也就是说,
newInteger
changeVar
返回时超出范围,因此在此之后不应保留指向它的指针。取消对此类指针的引用将导致。

您需要向函数传递引用(指向指针的指针)。这样,您就可以告诉函数“更改此位置的值”

注意-您需要
静态
,因为一旦您离开该功能,内存位置将无效。现在你把它叫做

changeValue(&randomPointer);

您需要向函数传递引用(指向指针的指针)。这样,您就可以告诉函数“更改此位置的值”

注意-您需要
静态
,因为一旦您离开该功能,内存位置将无效。现在你把它叫做

changeValue(&randomPointer);

您需要向函数传递引用(指向指针的指针)。这样,您就可以告诉函数“更改此位置的值”

注意-您需要
静态
,因为一旦您离开该功能,内存位置将无效。现在你把它叫做

changeValue(&randomPointer);

您需要向函数传递引用(指向指针的指针)。这样,您就可以告诉函数“更改此位置的值”

注意-您需要
静态
,因为一旦您离开该功能,内存位置将无效。现在你把它叫做

changeValue(&randomPointer);

对我举了一个坏例子。在实际情况中,对象是staticyes。我举了一个坏例子。在实际情况中,对象是staticyes。我举了一个坏例子。在实际情况中,对象是staticyes。我举了一个坏例子。在实际情况中,对象是静态的