Форум программистов, компьютерный форум CyberForum.ru

Проход матрицы используя указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа работает, не не совсем правильно... http://www.cyberforum.ru/cpp-beginners/thread81853.html
Напечатать вектор первых букв слова, которые начинаются и заканчиваются на указаный символ (т.е. надо вывести адрес строки и адреса первых букв слов, удовлетворяющих условию). В принципе программа работает, но у меня есть подозрения, что выводимые адреса символов неверные. void task3(){ char *s, c, z; int i, p, t; cout<<"Input z:"; cin>>z; printf ("Intut basic string:\n"); s=new...
C++ Выдаёт ошибку... Строчка 32. #include <iostream> #include <conio.h> #include <math.h> #include <stdio.h> using namespace std; bool prime(int n) { bool v; http://www.cyberforum.ru/cpp-beginners/thread81847.html
C++ комбинации чисел
здравствуйте, помогите дауну создать проэкт. visual studio 2005-2008 вот мне данно готовый пакет string ;IntToString(int intValue) // Credits to http://www.techbytes.ca/techbyte100.html { char *myBuff; string strRetVal; // Create a new char array myBuff = new char;
Работа с массивами и списками. Методы сортировки и поиска. C++
помогите написать програму Задачa Написать программу которая выполняет следующие действия: 1) считывает данные из файла и сохраняет их в памяти в виде списока с двойными связями 2) Выводит данные на экран в виде двух столбцов. , Разделенных тремя символами пробела. Столбцы должны иметь заголовки X и Y соответственно. 3) Сортировать данные по возрастанию или по убыванию по выбору...
C++ Структурная переменная http://www.cyberforum.ru/cpp-beginners/thread81789.html
Помагите решить плис... Ввести структуру (с полями числитель и знаменатель)для описания понятия рациональное число.Составить и протестировать функции: а)РАВНО (А,В), которая проверяет,равны ли друг другу рациональные числа А,В; б)МАКС (X,N), которая возвращает наибольшее из массива X рациональных чисел; в) СЛОЖ (А,В,С,), которая...
C++ двумерный массив помогите решить задачки плиз!!!!! №1. Дана матрица размера M x N (M-четное число).Поменять местами верхнюю и нижнюю половины матрицы. №2. Дана матрица размера M x N(N-четное число).Поменять местами верхнюю и нижнюю половины матрицы. №3.Описать функцию IsSquare(K)логического типа,возвращающую True,если целый параметр K (>0) является квадратом некоторого целого числа,и False в противном... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.01.2010, 17:27     Проход матрицы используя указатели
Этот код и не будет работать. Я могу его исправить что бы он работал, но думаю для Вас это не так важно.
C
1
int n[] = {0,1,2,3,4,5};
Вот так можно писать, здесь вы создаете статически массив
C
1
{0,1,2,3,4,5};
и присваиваете его int n[] - указателю на массив неизвестного размера. Так делать можно, компилятор пропустит. Но вот этот код, я опишу с точки зрения компилятора, что бы было понятнее:
C
1
2
3
4
5
void R(int n[])// в параметрах функции будет передаваться указатель на массив неивестного размера. Именно в этой строчке будет создаваться копия указателя на массив элементов типа int неизвестного размера, а значит размер массива будет избран равным 1. 
{
    for (int i = 0, _b(sizeof(n) / sizeof(n[0])); i < _b; ++i)// ну а дальше все понятно
        printf("%d",n[i]);
}
Вы попробуйте, что бы разобраться написать вот так:
C
1
2
3
int n[] = {0,1,2,3,4,5};// разница в том, что в этой строке, мы сразу инициализируем и переменную n и размер массива на который она будет указывать
for(int i=0; i<6; i++)
printf("%d ", n[i]);
а потом так:
C
1
2
3
4
int n[];// а вот здесь мы этот момент упустили
n = {0,1,2,3,4,5};// теперь так сделать не получится
for(int i=0; i<6; i++)
printf("%d ", n[i]);
Добавлено через 13 минут
Цитата Сообщение от outoftime Посмотреть сообщение
ладно, сделаю вид что понял, может с опытом как-то прийдет..
обязательно прийдет. Еще раз повторюсь: нет двумерных массивов в компьютере. Их придумали люди, которым это придумывание, помогает решить например задачи СЛАУ, задачи вывода на экран изображений, задачи связанные с лабиринтами и т.п. А решение задачи создания двумерных массивов было примерно таким: на данный момент можно выделять память под какие-либо подряд идущие элементы. А если выделить два раза такую память, то уже получается двумерный массив в две строки. Люди же умные существа, обязательно обойдут любую преграду, даже до которой компьютер не додумается (на самом деле думающий из них обоих только один).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru