Двумерные массивы в подпрограмме (Си)

программирование C++

Не могу понять, как изменять двумерные массивы через подпрограмму.
Пытался разными способами. Вроде адрес передан правильно...
Объясните, пожалуйста, как это работает.

Вот моя программа: //Набросал специально, чтоб проверить работу двумерных массивов

// Зона тестировния.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include <locale.h>
#include <iostream>


const int nn = 3;


void pod(float c[][nn], int *n, float *a)
{
int i,j;
for (i = 0; i < *n; i++)
for (j = 0; j < nn; j++)
{
printf_s("%5.0f", c[i][j]);
*c[0] = *a;
}
}

int _tmain(int argc, _TCHAR* argv[])
{
float a,c[nn][nn];
int n,i,j;
printf_s("a, n: ");
scanf_s("%f%d",&a, &n);
printf_s("massiv: \n");
for (i = 0; i < n; i++)
for (j = 0; j < nn;j++)
scanf_s("%f", &c[i][j]);
pod(c, &n,&a);
printf_s("\nmassiv posle: \n");
for (i = 0; i < n; i++)
{
printf_s("\n");
for (j = 0; j < nn; j++)
printf_s("%4.0f", c[i][j]);
}
printf_s("\n");
system("pause");
return 0;
}

Примечание:
Скопировал, не прочитав.

в этом месте у меня записано так:
*c[i*nn+j]=*a;

еще пробовал вот так:
*(c+i*nn+j)=*a;

не проходит

Примечание:
Понял как делать, оказывается все намного проще, чем я думал. Достаточно было написать:
c[i][j] = *a;
Спасибо!
Ответы:
Объясни пожалуйста, почему у тебя n и a явно указаны как указатели, а массив - нет?


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.