Oracle, укажите дату первого дня месяца.

Вы можете сделать это с любым типом данных. Просто сделайте это указателем на указатель:

typedef struct {
  int myint;
  char* mystring;
} data;

data** array;

. Но не забывайте, что вам все равно придется изменять malloc, и он становится немного сложным:

//initialize
int x,y,w,h;
w = 10; //width of array
h = 20; //height of array

//malloc the 'y' dimension
array = malloc(sizeof(data*) * h);

//iterate over 'y' dimension
for(y=0;y

Код для освобождения структуры выглядит аналогичным - не забудьте позвонить бесплатно () на все, что вы malloced! (Кроме того, в надежных приложениях вы должны проверить возврат malloc () .)

Теперь предположим, что вы хотите передать это функции. Вы все равно можете использовать двойной указатель, потому что вы, вероятно, хотите сделать манипуляции с структурой данных, а не указателем на указатели структур данных:

int whatsMyInt(data** arrayPtr, int x, int y){
  return arrayPtr[y][x].myint;
}

Вызовите эту функцию с помощью:

printf("My int is %d.\n", whatsMyInt(array, 2, 4));

Выход:

My int is 6.

24
задан MatBailie 21 October 2011 в 14:26
поделиться