Разобрать пример объявления динамического массива - C (СИ)
Формулировка задачи:
нашел такой пример объявления динамического массива ,но без комментариев
не могу понять,как это работает с третьей строчки
почему там стоит тип чар?
как в данном случае влияет на работу это сложение указателей?
можно поподробнее про тонкости работы с такими функциями?
у меня не получается так
может есть обходной маневр?)
int ** A = malloc(n*sizeof(int*) + n*m*sizeof(int));
char * pc = A;
pc += n*sizeof(int*);
for (int i=0; i<n; i++)
A[i] = pc + i*sizeof(m*sizeof(int));
а можно заставить функцию вернуть структуру,объявленную в ней же?
struct str Sozdanie_stroki(void)
{
struct str
{
int Len;
int *Point;
} ;
struct str slot ={0,NULL};
int i,v,size=1;
int *p1,*p2;
p1=(int*)malloc(size*sizeof(int));
while(1)
{
printf("Vvedite chislo\n");
scanf("%d",&v);
if (v==0) break;
else
{
p1[size-1]=v;
size++;
p2=(int*)malloc(size*sizeof(int));
for(i=0;i<size-1;i++)
p2[i]=p1[i];
free(p1);
p1=p2;
p2=NULL;
}
slot.Len++;
}
slot.Point=p1;
return slot;Решение задачи: «Разобрать пример объявления динамического массива»
textual
Листинг программы
void Execute(void)
{
/* all code here */
}
int main(void)
{
Execute();
return 0;
}