1

我在 main 中有一个 int,称为“end”。

Main 调用一个函数,该函数本身调用一个函数。

到目前为止,我能够让第一个函数通过向它发送一个地址并让它期望一个指针来操纵“结束”。但是,我不能将它发送到下一个函数,并让它操纵 main 中调用的“int”。

到目前为止,我有以下适用于一个功能;

适用于一种功能的缩写代码:

void function(int* end);

int main(void)
{
   end = 0;

   function(&end);
}

void function(int* end)
{
   *end = 1;

   // At this stage I want to call in another function, and have it be able to manipulate 'end'
}
4

2 回答 2

6

继续传递指针。

void function2( int *end ) {
    *end += 41;
}

void function( int *end ) {
    *end = 1;
    function2( end );
}
于 2012-12-17T21:47:10.250 回答
0

请记住,在您的函数中,您已经有一个整数指针 - 确保您继续将指针end而不是地址传递给指针&end

#include <stdio.h>

void function( int *end );
void another_function( int *end );

int main( int argc, char *argv[] ) {
   int end = 0;
   function( &end );
   printf( "end: %d\n", end );
}

void function( int *end ) {
   *end = 1;
   another_function( end );
}

void another_function( int *end ) {
   (*end)++;
}

输出: end: 2

于 2012-12-17T21:54:20.627 回答