Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача двухмерного массива в функцию и изменение его в ней?

65K
15 апреля 2013 года
MurMur
8 / / 01.12.2012
Необходимо передать двухмерный массив в функцию, функция запрашивает данные, которые помещает в этот массив. Почему-то данные в массиве после окончания работы функции не сохраняются. Что изменить? Что не так?

Код:
void Enter(double **A, int x, int y)
{
     int i, j;  
     printf("Enter digits: ");    
     for (i=0; i<x; i++)
     {
         for (j=0; j<y; j++)
         {
            scanf("%f", &A[i][j]);
           
         }
      }
}
  • Покажите код инициализации массива и код, как вы вызываете функцию. от P*t*, 15 апреля 2013 года
326
16 апреля 2013 года
sadovoya
757 / / 19.11.2005
Вообще-то для double в scanf надо %lf. У меня такой код работает:

Код:
#include <stdio.h>

void Enter(double **A, int x, int y) {
    int i, j;
    printf("Enter digits: ");
    for (i=0; i<x; i++) {
        for (j=0; j<y; j++) {
            scanf("%lf", &A[i][j]);
 
        }
    }
}
 
int main() {
    int i,j;
    double *ar[2];
    for (i=0; i<2; ++i) ar[i]=(double *)malloc(2*sizeof(double));
    Enter(ar,2,2);
 
    for (i = 0; i < 2; ++i)
        for(j = 0; j < 2; ++j)
            printf("Вы ввели: %lf\n",ar[i][j]);
 
    for (i = 0; i < 2; ++i) free(ar[i]);
   
    return 0;
};
Лучше, конечно, в С++ new/delete.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог