-3

私が欲しいのは、buffスレッド内の配列のデータが変更された場合、グローバル変数のglobal_buffデータも変更する必要があるということです

#include <process.h>
.........

char global_buff_1[50];
char global_buff_2[50];

void thread (int x)
{
   char buff[50] = {0};
   if (x == 0)
      buff = global_buff_1;      //this is what i need, how can i equal two array correctly. i want to if buff array data changing the global_buff also changing.
   else
      buff = global_buff_2;
    .............
    //do some thing 
    .............
}

int main(int argc, char* argv [])
{
...................
int y = 0;
_beginthread((void(*)(void*))thread, 0, (void*)y);
.....................
}

どんな助けでも!

4

2 に答える 2

0

あなたはしたい、

  • global_buff_1[]に割り当てるbuff[]
  • buff[]変更を配列に反映global_buff_1[]

buffchar配列であり、配列名もポインターとして機能できます。global_buff_1char配列です。したがって、配列はアドレスであるため、単に配列を別の配列に割り当てることはできません。から値をコピーする必要がある場合は、global_buff_1次のbuffようにする必要があります。

strcpy(buff,global_buff_1);

ただし、これにより、同じ値を持つ 2 つの別個の配列が作成され、2 番目の要件を満たせなくなります。

ここでポインタをそのまま利用できます。

char * buff;
buff = global_buff_1;

それでも、2 つの名前でアクセスできる単一の配列があります。

于 2013-07-18T11:55:21.830 に答える