Содержание
-
Динамическая память
Лекция 1
-
Размерности
1 байт = 8 бит 1 параграф = 24 байт 1 Кб = 210 байт 1 Мб = 220 байт 1 сегмент = 64 Кб = 216 байт
-
Модель оперативной памяти ПК
Сегмент Смещение адрес = (сегмент, смещение) Абсолютный адрес = сегмент *16 + смещение Пример Адрес = (F10A, 240E) Абс. адрес = F10A0 + 240E +
-
Модель карты памяти
-
Сравнение статической и динамической памяти
-
Указатель
Указатель – это переменная, значением которой является адрес области памяти Указатель Адрес Переменная Значение
-
Описание указателей
На Паскале var p : pointer; t : ^integer; n: integer; … n := t^; На Си int *t; int n; … n = *t; //разыменование t = &n; //адрес
-
Указатели и массивы
int b[5] = {1, 1}; int *p, i; for (i = 2; i
-
Строки в Си
#include … char S[100]; int l; strcpy (S, ”test”); l = strlen(S); S l 4
-
Функции работы с динамической памятью
-
Пример работы с динамической памятью
#include #include int main() { float *t; inti, n; printf(”\nn=”); scanf(”%d”,&n); t= (float *)malloc(n*sizeof(float)); for(i = 0; i
-
Пример 2
#include #include #include int main() { char *s, *s1; int n; s = (char *)malloc(100); scanf(”%s”, s); for(n = 0; s[n]; n++); s1 = (char *)malloc(n*2 + 1); strcpy(s1, s); strcpy(s1 + n, s); printf(”%s”, s1); free(s); free(s1); return 0; }
-
Пример 3.
void swap (int *x, int *y) { int a; a = *x; *x = *y; *y = a; } … int main() { int a, b; … swap(&a, &b); // обмен значений двух переменных … return 0; }
-
Структуры в Си
struct {} struct student { char *name; int age; }; struct student x, y, *z; … x.age = 19; x.name = (char *)malloc(20); scanf (“%s”, x.name); z = &x; printf (“age = %d\n”, (*z).age); printf (“age = %d\n”, z->age);
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.