Динамическое распределение памяти
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат на тему политика, реферати українською
Добавил(а) на сайт: Jaroslavov.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Задание №10
#include
#include
#include
#include main()
{ clrscr(); char **mas; int c,m=0,n=0; mas=(char **)malloc(sizeof(char *)); //Выделение памяти под
первое число mas[0]=(char *)malloc(sizeof(char)); //Выделение памяти под
первую позицию
//цифры в числе printf ("Intputn"); while ((c=getch())-'0') //Пока не ввели 0
{ if (c==13) //При нажатии
Enter выделение памяти
{ //под новое
число mas[m][n]=0; m++; if (!(mas=(char **)realloc(mas,sizeof(char *)*(m+1))))
{ printf ("Не хватает памятиn"); exit(1);
} n=0; putch(10); //Перевод карретки и
перевод строки putch(13); //при выводе на
экран
} if ((c'9')) continue; //Проверка на ввод
только цифр if ((!n)&&(m)) //Выделение памяти под
первую позицию
{ //в следующем
числе if(!(mas[m]=(char *)malloc(sizeof(char)) ))
{ printf ("Не хватает памятиn"); exit(1);
}
} mas[m][n]=c; //Занесение цифры
на нужную позицию n++; //в число if (n) //Выделение
памяти под следующую
{ //позицию в
числе if (!(mas[m]=(char *)realloc(mas[m],sizeof(char)*(n+1))))
{ printf ("Не хватает памятиn"); exit(1);
}
} putch (c); //Вывод цифры на
экран
}
printf ("Outputn"); for (int i=0;im))))
return 0; for (int i=0;im;i++)
{ if (!(matr->ptr[i]=(double *)malloc(sizeof(double)*(matr->n))))
return 0;
} return 1;
}
void FreeMatr(Matr *matr)
{ for (int i=0;im;i++)
{ if (matr->ptr[i]) free(matr->ptr[i]);
} if (matr->ptr) free(matr->ptr);
}
void Setelem(Matr *matr,double M[3][3])
{ for (int i=0;im;i++)
{ for (int j=0;jn;j++) (matr->ptr[i][j])=M[i][j];
}
}
double OctNorm(Matr *matr)
{ double max=0; double a=0; for (int i=0;im;i++)
{ max+=matr->ptr[i][0];
} for (int j=0;jn;j++)
{ for (i=0;im;i++)
{ a+=matr->ptr[i][j];
} if (a>max) max=a; a=0;
} return max;
}
Задание №14
#include
#include
#include
#include
void main(void)
{ long N=1; char *A;
A=(char *)calloc(N,1024); //Выделение в куче места
do
{ free(A); //Освобождение массива
A=(char *)calloc(N,1024); //Выделение памяти под больший массив
N++; //Увеличение счетчика
} while(A!=NULL); //Продолжать пока память выделяется printf("nMaximum size of heap N=%iKb",N);//Вывод результатов
}
Задание №16
#include
#include
#include
#include
#include struct MATR
{ int n,m; double **ptr; int read_(char name[80])
{
FILE *pf; int i=0,j=0; char c; char num[10]; int pos=0,flag=1; m=0; n=0; if (!(pf=fopen(name,"rt"))) return 0; ptr=(double **)malloc(sizeof(double *)); ptr[0]=(double *)malloc(sizeof(double)); while ((c=fgetc(pf))!=EOF)
Рекомендуем скачать другие рефераты по теме: реферат китай курсовые работы, бесплатные шпаргалки по праву.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата