Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2012, 23:27   #1
Newb1e
 
Регистрация: 16.10.2011
Сообщений: 9
По умолчанию Статический массив Си

Нужна помощь, не знаю решить задачу. Нужно указать на статический массив, находящийся в другой функции

Вот кусок НЕ работающего когда:
Код:
int vqvod(int * arr) // вот это нужно отправить в main (см. последнюю строчку кода)
{ 
  int a[100][100];
  for (int i=0;i<n;++i) a[i]=new int [n];
  for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
        {
            a[i][j]=-2+rand()%10;
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
}

int main()
{
    int n,i,j;
    bool flag,fl=false;
    int p, allp;
   
    printf("Input n<100: ");
    scanf("%d",&n);
   srand(time(NULL));
   vqvod ((int*) a);
помогите ошибки исправить, что-то я наворотил не то...
Newb1e вне форума Ответить с цитированием
Старый 17.06.2012, 23:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Эм, массив "а", объявленный в функции, является локальным. Как только выполнение функции завершится, на его месте будет мусор. Массив нужно объявить в main и передать в функцию ввода.
Код:
#include <stdio.h>

void
vvod(int *a,int n)
{
    int i,j;
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            a[n*i+j]=-2+rand()%10;
}

void
vivod(int *a,int n)
{
    int i,j;
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++)
            printf("%d ",a[n*i+j]);
        printf("\n");
    }
}

int
main()
{
    int n;
    printf("Input n<100: ");
    scanf("%d",&n);
    int a[n][n];
    srand(time(NULL));
    vvod(a,n);
    vivod(a,n);
    return 0;
}
Может быть, еще как-то можно передать двумерный массив.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 18.06.2012 в 00:04.
BDA вне форума Ответить с цитированием
Старый 18.06.2012, 00:38   #3
Newb1e
 
Регистрация: 16.10.2011
Сообщений: 9
По умолчанию

Неа, не работает
Newb1e вне форума Ответить с цитированием
Старый 18.06.2012, 01:24   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

В чем компилируете?

У меня работает
(Code::Blocks)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статический одномерный массив ? МоЗгАвеД Общие вопросы C/C++ 145 25.12.2011 22:59
статический массив стеков 19denis90 C++ Builder 1 04.07.2011 13:00
статический двумерный массив Koksa Помощь студентам 1 10.02.2011 07:58
статический массив IrinaSS Общие вопросы C/C++ 2 08.12.2010 19:31
Одномерный статический массив С++ Natali21 Помощь студентам 1 17.11.2010 16:57