将指针从函数传递给另一个函数

时间:2018-03-14 02:32:15

标签: c function pointers

我正在寻找一种方法将指针从而不是主函数传递给另一个函数。值为5的变量x作为func1的指针发送,func1将变量值更改为10,然后func1将相同的变量发送到func2。

我希望它看起来像那样:

#include <stdio.h>

void func1(int *px);
void func2();

int main(void)

{   
    int x=5;
    printf("x in main %d\n", x);
    func1(&x);

    return 0;
}

void func1(int *px)
{
    *px = 10;
    printf("x i funk 1 %d\n", *px);
    funk2(); // send to this function a pointer to x, which in this function(func1) is pointed by *px
    funk3();
}

void func2()
{
    //*px=15 // here I want to change value of x 
}

2 个答案:

答案 0 :(得分:1)

  

我完全迷失了如何做到这一点。

使用与将timing <- system.time({find_ngrams(stri_split_fixed(sents1, ' '), n = 2)}) timing user system elapsed 90.499 0.506 91.309 timing_tokenizers <- system.time({tokenize_ngrams(sents1, n = 2)}) timing_tokenizers user system elapsed 6.940 0.022 6.964 timing <- system.time({find_ngrams(stri_split_fixed(sents2, ' '), n = 2)}) timing user system elapsed 138.957 3.131 142.581 timing_tokenizers <- system.time({tokenize_ngrams(sents2, n = 2)}) timing_tokenizers user system elapsed 65.22 1.57 66.91 的指针从x传递到main完全相同的逻辑。

在这种情况下,func1也应接受指向func2的指针,int应将指针传递给func1的{​​{1}}:

func2

答案 1 :(得分:1)

只需将func1()中的参数传递给func2(),作为指针,px中的func1()py中的func2()将指向相同的内存位置,x的地址。

int main(void)

{
    int x = 5;
    printf("x in main %d\n", x);
    func1(&x);

    printf("x now %d\n", x);

    return 0;
}

void func2(int *py)
{
    *py = 15; // here I want to change value of x 
}



void func1(int *px)
{
    *px = 10;
    printf("x in funk 1 %d\n", *px);
    func2(px); // send to this function a pointer to x, which in this function(func1) is pointed by *px

}

输出:

x in main 5
x in funk 1 10
x now 15