LINUX.ORG.RU

Как определить массив


0

0

Имеется указатель (*k) на память выделенный malloc.
Хочеться работать с этой памятью как с массивом k[x][100], то еть обращатся так
sprintf(k[10],"test");

как сказать на сях, что это память являеться массивом?

#include <stdlib.h>

int main(void)
{
int z,size=100000;
char *k;

k=(char*)malloc(size*100+1);
if (k==NULL) {printf("Can't allocate memory\n"); exit(-1);}

sprintf(k[10],"test");

return (0);
}


Re: Как определить массив

Никаких проблем, берешь и работаешь как с массивом, да это и есть массив.

sprintf(k[10],"test");

Здесь у тебя написано : записать в массив (k) с 10-ой позиции массив "test". адресация с 0

anonymous ()
Ответ на: Re: Как определить массив от anonymous

Re: Re: Как определить массив

Но массив то на самом деле двухмерный k[x][100]
и надо что бы запись происходила в x*100

anonymous ()
Ответ на: Re: Re: Как определить массив от anonymous

Re: Re: Re: Как определить массив

Тогда позиционируйся на x*100

Но вообщето правильней делать так:

char **p = NULL;

main (){ int size = 10000; int i;

p = (char **)malloc (size);

for (i = 0; i < size; i++) p[i] = (char *)malloc (100);

sprintf (p[10], "test"); }

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.