1

メインに「end」と呼ばれるintがあります。

関数内のメイン呼び出し。それ自体が関数内で呼び出します。

これまでのところ、最初の関数にアドレスを送信し、ポインターを期待させることで「終了」を操作させることができました。ただし、それを次の関数に送信して、メインで呼び出された「int」を操作させることはできません。

これまでのところ、1つの関数で機能する次のものがあります。

1 つの関数で機能する短縮コード:

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 に答える