0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 34
1

Вопрос по поводу динамического выделения памяти и указателей

25.03.2012, 01:41. Показов 823. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
void buildArray(int *arr,int lenght)
{
    int i;
    arr = (int*)malloc(lenght * sizeof(int));
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    printf("buildArray print :\n");
    for(i=0;i<lenght;i++)
    {
        printf("%d\n",arr[i]);
    }
}
void main()
{
    int *arr=NULL;
    int length=3;
    int i;
    buildArray(arr,length);
    printf("main print :\n");
    for(i=0;i<length;i++)
    {
        printf("%d\n",arr[i]);
    }
}
Вопрос такой почему в майне после вызова функции buildArray указатель arr все ещё равен null?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 01:41
Ответы с готовыми решениями:

По поводу динамического выделения памяти
Допустим, в программе вызывается функция SomeFunc(), описанная как void SomeFunc(){ int arr;...

Применение Динамического выделения памяти
Надо решить задачу написав функцию. Нужно выделить память использую malloc. Помогите Плиз..!...

Функция динамического выделения памяти
Здравствуйте! Никак не получается реализовать функцию динамического выделения памяти и это ставит...

Использование динамического выделения памяти
Найти, сколько элементов массива A={a} удовлетворяют условию а&lt;=с/d. Использовать динамическое...

6
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.03.2012, 01:51 2
https://www.cyberforum.ru/cpp-... 52782.html
1
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 34
25.03.2012, 02:31  [ТС] 3
Я же в функцию передаю указатель который указывает на какой то кусок памяти в функции я выделяю эту память. arr в мейне и arr в функции почему не указывают на одну и туже память?
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
25.03.2012, 09:55 4
Цитата Сообщение от pavelgu Посмотреть сообщение
Я же в функцию передаю указатель который указывает на какой то кусок памяти в функции я выделяю эту память. arr в мейне и arr в функции почему не указывают на одну и туже память?
передается не указатель, а копия указателя. В функции вы оперируете локальной переменной
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
25.03.2012, 10:07 5
чтобы изменить значение переменной в вашей ф-ии, нужно передать указатель на нее. в вашем случае, переменная - это указатель. чтобы изменить ее значение, нужно передать указатель на вашу переменную-указатель.
C
1
2
3
4
5
6
7
void buildArray(int** arr,int lenght)
{
...
    *arr = (int*)malloc(lenght * sizeof(int));
...
 
buildArray(&arr,length);
1
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 34
25.03.2012, 18:52  [ТС] 6
Спасибо всем за ответы я вроде разобрался
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
25.03.2012, 18:55 7
Цитата Сообщение от pavelgu Посмотреть сообщение
Спасибо всем за ответы я вроде разобрался
А можно просто переделать с войда на нужный тип и присваивать переменной эту функцию
0
25.03.2012, 18:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2012, 18:55
Помогаю со студенческими работами здесь

Проверка выделения памяти указателей через оператор new
И так есть некая структура, экземпляр которой определён как: var ***v; Изначально заполняю...

Функциии динамического выделения и освобождения памяти
Необходим написать функции выделения и освобождения памяти под двумерный динамический массив....

Операторы динамического выделения памяти - new/delete
Здравствуйте. Я немного не понимаю некоторый момент, связанный с динамическим выделением памяти,...

Передача массива указателей в функцию для выделения памяти
Есть функция, в которую передаются массивы указателей, для выделения памяти. void...


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

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

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