我正在寻找一种方法将指针从而不是主函数传递给另一个函数。值为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
}
答案 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