Присвоение массива int указателю int - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу присвоить значение массива указателю или мне нужен лучший способ выполнить следующую операцию.

У меня есть структура

struct ver{
    int *a;
    int *b
    int *c;
}

struct Versions{
    int ver1[3];
    int ver2[3];
    int ver3[9];
}

static const Versions versionsinfo[] {
    "001234",
    {0,18,0},
    "000000"
};

static Temp_Data;

Versions * GetVersions() {
    Versions * pt = NULL;
    memcpy(&Temp_Data,&versionsinfo[1]);
    pt = &Temp_Data;
    return pt ;
}

struct Versions *pointer;
pointer = GetVersions();    

struct ver *newVer;
newVer->a= pointer->ver1;
newVer->b= pointer->ver2;
newVer->c= pointer->ver3;

Я хочу присвоить значениеот Ver1 до члена struct ver, a, b или c.

Может кто-нибудь, пожалуйста, дайте мне знать, если это возможно в C.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Надеюсь, это поможет

struct ver
{
  int *a;
  int *b;
  int *c;
};

int Ver1[3] = {1,2,3};
int Ver2[3] = {1,2,3};;
int Ver3[9];

struct ver *newVer;

int main()
{
   struct ver newV;/*the memory for struct var is allocated in main */

   newVer = (struct ver *)malloc(sizeof(struct ver));/*memory allocated in heap*/

   newV.a = Ver1;/*OR newVar.a = &Ver1[0];*/
   newV.b = Ver2;
   newV.c = Ver3;
   printf("newV->a[0] is %d", newV.a[0]);
  /*OR*/
  newVer->a = Ver1;
  newVer->b = Ver2;
  newVer->c = Ver3;
  printf("\nnewVar->a[1] is %d", newVer->a[1]);
  free(newVer); 

  return 0;
}
0 голосов
/ 17 декабря 2018

Ну,

int Ver1[3];
int Ver2[9];
int Ver3[9];

Они инициализируют массивы типа int.Поэтому, если вы хотите получить эти числа (которые являются размерами массивов в приведенном выше), вам нужно сделать

int Ver1 = 3;
int Ver2 = 9;
int Ver3 = 9;

Выделить немного памяти для указателя

struct ver *newVer = malloc(sizeof(newVer));

изатем поместите значения в структуру

newVer[0].a = Ver1;
newVer[0].b = Ver2;
newVer[0].c = Ver3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...