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

Передача аргументов в функцию. Работа с памятью.

08.01.2011, 22:10. Показов 1063. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int f(int a) {...}
int g(float *a) {...}
int h(float *&a) {...}
 
int main() {
float *p;
int a=5;
int res;
....
res=f(a);
res=g(p);
res=h(p);
 
return 0;
}
Память делится на кучу и стек. В случае с вызовом функции f(), создается копия элемента a и в это поле вносится значение равное 5? А что происходит при вызове функции g() И h() и в чем отличие?
Подскажите, пожалуйста, где можно прочитать, каким образом организуется работа с памятью?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2011, 22:10
Ответы с готовыми решениями:

Передача нескольких аргументов
Добрый день, скажите как передать несколько аргументов для func2 и вывести их в printf? ...

Нужна книга, где рассматриваются работа с прерываниями, указатели, работа с памятью, ассемблерные вставки
Привет всем! Подскажите, пожалуйста, хорошую книгу по C (именно C, не C++). Интересует работа с...

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

Работа с памятью
Добрый вечер! Знаете ли вы какие-нибудь полезные источники, где хорошо описывается, как работать...

3
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
09.01.2011, 01:35 2
C
1
int g(float *a) {...}
параметр в функцию передается по указателю
C
1
int h(float *a) {...}
параметр в функцию передается по ссылке
0
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 4
09.01.2011, 01:40  [ТС] 3
Это понятно. Тогда вопрос сформулирую немного по другому. Если в функции планируется выделить память с помощью, например, malloc(), для указателя *p, объявленного в main(), то функция после вызова функции h() программа продолжает работать, а если аналогичное проделать через вызов функции g(), то программа вылетает с ошибкой.
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
09.01.2011, 01:45 4
malloc() возвращает адресс созданного блока памяти, который можно присвоить указателю. Ссылка это не указатель, она ничего не хранит, это как бы виртуальный объект.
0
09.01.2011, 01:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2011, 01:45
Помогаю со студенческими работами здесь

Работа с памятью
Реализовать набор из следующих функций и показать их работоспособность: • void* myMalloc(size_t...

Работа с динамической памятью
Создаю указатели char *s,*p; s = (char *)malloc(sizeof(char)); потом p = (char *)realloc(s,...

Работа с динамической памятью
Нужно наименьший элемент каждой строки, начиная со второй заменить наибольшим элементом...

Ошибка при передаче аргументов в функцию
Есть функция определения минимального значения: float minimum(float x,float y) { x = (x<y)? x...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru