Разобрать пример объявления динамического массива - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы