Указатели передаются в функцию по значению или по ссылке? - C (СИ)
Формулировка задачи:
Здравствуйте! В общем у меня туповатый вопрос, после прочтения книги Кернигана и Ритчи я не понял, указатели передаются в функцию по значению или по ссылке?
Вот примерчик:
После вызова подпрограммы setInt pInt будет инициализирован адресом или нет? И как сделать чтобы был...
main()
{
int* pInt = NULL;
setInt(pInt);
}
void setInt(int* paramInt)
{
paramInt = malloc(sizeof(int));
}Решение задачи: «Указатели передаются в функцию по значению или по ссылке?»
textual
Листинг программы
void setInt(int** paramInt)
{
¶mInt = malloc(sizeof(int));
}
Объяснение кода листинга программы
В данном коде:
- Функция setInt принимает параметр paramInt типа int**, то есть указатель на указатель целых чисел.
- В первой строке кода внутри функции paramInt присваивается значение, возвращаемое функцией malloc, которая выделяет память под указатель типа int.
- Код в функции не выполняет никаких других действий с переданным параметром paramInt. Таким образом, в данном коде указатель paramInt передается в функцию по значению, так как его значение присваивается внутри функции и не изменяется.