Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 26.12.2009
Сообщений: 47
1

Карта распределения памяти

12.01.2010, 13:47. Показов 1236. Ответов 4
Метки нет (Все метки)

Создать 2 массива A и B из элементов типа char по 10 элементов
Заполнить массив A и массив B нулями
Заполнить массив A c переполнением 20-тью элементами 1,2,3,4 .. 20
Вывести на экран через пробел по 10 элементов массива А и В в виде
Массив A: 1 2 3 4 5 6 7 8 9 10
Массив B: 0 0 0 0 0 0 0 0 0 0

У меня получился следующий код

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
 
int main()
{
    char a[SIZE], b[SIZE];
    char i;
 
    for (i=0; i<SIZE; i++)
    {
    a[i]=b[i]=0;
    }
 
    for (i=1; i<20; i++)
    {
    a[i]=i;
    }
 
    printf("A: ");
    for (i=1; i<SIZE; i++)
    {
       printf("%i ",a[i]);
    }
    printf("\n B: ");
    for (i=1; i<SIZE; i++)
    {
       printf("%i ",b[i]);
    }
    return 0;
}
Помогите построить Карту распределения памяти по этому заданию
Вложение 18408
Вложение 18409

Я сделал вот такую

Вложение 18410

А препод в ответ

Я не вижу. то как Вы получили адреса массивов и функций. Или выведите скриншот экрана, используя функций отладки (watch) кодеблокса, ну или используя команду printf - выведите на экран во время исполнения программы - последний способ я объяснял на практическом занятии.

У Вас неправильно составлена карта памяти:

1) в программе массивы у Вас по 10 байт, а в карте памяти по 9 байт.

2) неправильное расположение переменной i в стеке на вашей картинке

3) адреса растут сверху вниз, а у Вас то сверху вниз, то снизу вверх.


Помогите плиз с этим заданием
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2010, 13:47
Ответы с готовыми решениями:

Управление памятью, изучение распределения памяти
Первая работа.Помогите чем сможете.Буду благодарна.

Организация динамического двухмерного массива. Порядок распределения памяти
Итак, софорумцы, здравствуйте. Как всегда, преподавателя ещё нет, а я не знаю прав я или нет....

Реализовать стандартный набор операций со стеком на основе динамического распределения памяти
Реализовать программу, выполняющую стандартный набор операций со стеком на динамического...

Функции для динамического распределения памяти для матрицы
Написал на С ф-ции для распределения памяти для квадратной матрицы: Хочу у вас спросить правильно...

4
73 / 73 / 11
Регистрация: 20.11.2009
Сообщений: 238
12.01.2010, 23:03 2
Нумерация элементов массива начинается с 0 (т.е. первый - 0, второй - 1 и т.д.). А при помощи вот такой вот программки, наверно сможешь составить карту?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#define SIZE 10
 
int main()
{
    char a[SIZE], b[SIZE];
    char i;
 
    for (i=0; i<SIZE; i++)  //заполнение массивов 0
    {
      a[i]=b[i]=0;
    }
 
    for (i=0; i<20; i++)    //переполнение массива а
    {
      a[i]=i;
    }
 
    printf("A: ");
    printf("\n     massiv a       |      massiv b");
    printf("\n Address-znachenie  |  Address -znachenie");
    printf("\n-----------------------------------------\n");
    for (i=0; i<SIZE; i++)
    {
      printf("\n%d -   %i       |  %d -    %i",&a[i], a[i], &b[i], b[i]);
    }
    printf("\n\nPeremennay i  - %i", &i);
    printf("\nfunction main - %i", &main);
    getch();
    return 0;
}
0
1 / 1 / 0
Регистрация: 26.12.2009
Сообщений: 47
13.01.2010, 07:32  [ТС] 3
Ну более правильным будет вот-так

C
1
2
3
4
5
6
7
8
9
10
   printf("A: ");
    printf("\n     massiv a       |      massiv b");
    printf("\n Address-znachenie  |  Address -znachenie");
    printf("\n-----------------------------------------\n");
    for (i=0; i<SIZE; i++)
    {
      printf("\n%ph -   %i       |  %ph -    %i",&a[i], a[i], &b[i], b[i]);
    }
    printf("\n\nPeremennay i  - %ph", &i);
    printf("\nfunction main - %ph", &main);
Но однако и на это препод сказал, что числа по 10байт а у меня получаются по 9 байт. в чем проблема? и как их получить
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,020
13.01.2010, 07:41 4
fantazer333, Так ты сам подсчитай сколько у тебя байт выводится. printf выполняется 10 раз
0
1 / 1 / 0
Регистрация: 26.12.2009
Сообщений: 47
13.01.2010, 08:46  [ТС] 5
Тема закрыта, я разобрался, не успел отписаться
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2010, 08:46

Упрощенная карта распределения памяти.
Это собственно тема моего курсача. Вопросов несколько, и всех, кто поможет заранее благодарю! ...

у меня nokia 6555.захожу в галерею и нажимаю карта памяти когда её нету и пишет карта память неотформотиравана
захожу в галерею и нажимаю карта памяти когда ийо нету и пишет карта память неотформотиравана...

Карта памяти глючит.
Всем доброго дня. Не знал в какую тему написать, но написал в эту. Вообщем есть карта памяти на...

карта памяти microSD
на карте памяти имеется свободное место 1ГБ, при попытке открыть файл pdf (200 МБ), появляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.