C/C++

Помогите с программированием на си

Способы возврата значений из функции. Назовите эти способы. Очень срочно
#include <stdio.h>
#include <stdlib.h>
// Возвращение по ссылке, работает только в С++
int& twice_ref(int* ptr) {
*ptr *= 2;
return *ptr;
}
// Возвращение по параметрам-ссылкам, работает только в С++
void swap_ref(int& a, int& b) {
int t = a;
a = b;
b = t;
}
// Возвращение по указателю в стиле языка C++
int* create_cpp(size_t len) {
auto ptr = new int[len];
if (ptr != nullptr) {
auto n = 0;
for (auto i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
// Возвращение по значению
int twice_val(int value) {
return value * 2;
}
// Возвращение по параметрам-указателям
void swap_ptr(int *pa, int* pb) {
int t = *pa;
*pa = *pb;
*pb = t;
}
// Возвращение по указателю в стиле языка C
int* create_c(int* ptr, size_t len) {
ptr = (int*)malloc(len * sizeof(int));
if (ptr != NULL) {
int n = 0;
size_t i;
for (i = 0U; i < len; ++i) ptr[i] = ++n;
}
return ptr;
}
int main(void) {
int* ptr = NULL;
size_t len = 12U;
size_t i;
int n = 0;
ptr = create_c(ptr, len); // обязательно вернуть переданный указатель...
for (i = 0U; i < len; ++i) printf("%4i", ptr[i]);
puts("");
free(ptr); // ...иначе при освобождении ресурсов памяти возникнет ошибка
return 0;
}
ММ
Максим Мусатов
79 117
Лучший ответ
1. По значению
2. По адресу
3. По ссылке
Вадим Семенов Можете написать простую програмку которая по адресу. Молю
Андрей Кожевников Конечно: вот например:
int *someFunction (int *ptr){
*ptr=15;
return ptr;
}

int main(){
int x=7;
someFunction(&x);

return 0;
}
Injector. 1G-Ge. Фактически есть еще несколько способов вытащить что-то из функции, но они применяются не так часто и можно поспорить насчет отношения их к возврату значений. Например можно использовать глобальную переменную, какие-то средства межпроцессной коммуникации а также разделяемую память.