C массивы и указатели - PullRequest
       0

C массивы и указатели

0 голосов
/ 09 октября 2011

Только начал изучать язык Си.У меня есть массив указателей int * parr, и мне нужно заполнить его случайными числами, а затем сделать другие вещи с ним.Но я даже не понимаю, как заполнить его случайными числами.Я пробовал что-то подобное, но зависает программа:

for(i=0 ; i<R ; i++)
{
  for(j=0 ; j<C; j++)
    {
    *(parr+i*C+j)=rand() % 10;
    printf("%d",*(parr+i*C+j));
    }
  printf("\n");
}

Ответы [ 2 ]

5 голосов
/ 09 октября 2011

То, как вы его инициализируете, вам, вероятно, придется malloc памяти, как это:

parr = malloc(R * C * sizeof(*parr));
2 голосов
/ 09 октября 2011
int *parr;

просто определяет указатель на целое число, но с ним не связано хранилище.Вы можете либо

int parr[sizeofarray];

, либо

int *parr = calloc (sizeofarray, sizeof(int));

, чтобы получить правильный объем хранилища.

на основе вашего примера sizeofarray должен быть не менее R * C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...