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

Ошибочки в функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Новичок или Лузер... http://www.cyberforum.ru/cpp-beginners/thread337393.html
Ребят, я так в скольз знаю о программировании, но хочу научиться этому тяжелому ремеслу, можете подсказать с чего начать, так сказать проще для начинающих?!
C++ предлагаю людям класс "рекурсивный обход матрицы" для решения задач на такую тематику Друзья! Ввиду возникшей необходимости мной был написан класс "рекурсивный обход матрицы"; Теперь задачи на такую тематику будут решаться легко и просто. С меня интерфейс, с вас- мозги. Рассмотрим одну из таких задач, на её примере я покажу как надо решать такие задачи и познакомлю с терминами. Вот ей текст ... http://www.cyberforum.ru/cpp-beginners/thread337392.html
[Матрица] Круг или квадрат? C++
Доброго времени суток. Условие тут. Просьба подсказать алгоритм или выложить код с кратким описанием идеи решения. Сам довольно много думал, но ничего дельного не надумал... А задача должна быть несложной.
C++ Visual C++ & Hello world
Вот поставил Visual C++ 2005 Пишу: #include "stdafx.h" #include <iostream.h> int _tmain(int argc, _TCHAR* argv) {
C++ Почему тормозит играаа??? http://www.cyberforum.ru/cpp-beginners/thread337343.html
Добрый день - решил недавно создать игрушку (третяя на моем счету)... но на этот раз игра не пошаговая - эдакое подобие бомбермена с инвентарем... Можете пожалуйста подсказать по какой причине игра может тормозить ? (Возможно проблема в алгоритме - основная часть которого в мейн функции(это цикл)- пожалуйста обратите внимание) Администрацию сайта просьба не переносить даное сообщение в...
C++ простые функции Всем приветик!!! Есть код: #include<iostream.h> #include<conio.h> #include<string.h> enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder}; class Body { подробнее

Показать сообщение отдельно
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
30.07.2011, 03:40     Ошибочки в функции
Тогда работать должно неправильно.
Двухмерный массив не является массивом указателей, так что его нельзя передавать через двойной указатель.

Добавлено через 9 минут
Иллюстрация:
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
26
27
28
#include <stdio.h>
 
int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 
void test1(int b[][3])
{
    int i, j;
    printf("test1:\n");
    for (i = 0; i < 3; ++i)
        for (j = 0; j < 3; ++j)
            printf("b[%d][%d] = %d\n", i, j, b[i][j]);
}
 
void test2(int **b)
{
    int i, j;
    printf("test2:\n");
    for (i = 0; i < 3; ++i)
        for (j = 0; j < 3; ++j)
            printf("b[%d][%d] = %d\n", i, j, b[i][j]);
}
 
int main(void)
{
    test1(a);
    test2((int**)a);
    return 0;
}
При запуске имеем:
Код
$ ./a.out     
test1:
b[0][0] = 1
b[0][1] = 2
b[0][2] = 3
b[1][0] = 4
b[1][1] = 5
b[1][2] = 6
b[2][0] = 7
b[2][1] = 8
b[2][2] = 9
test2:
zsh: segmentation fault  ./a.out
Про первое измерение я погорячился. Как раз для него не обязательно размер указывать.

Добавлено через 29 минут
А вот когда я говорил про отличия int q[] от int* q я был неправ, так как в голове держал двухмерные массивы. Для одномерных эти формы записи, по-моему, всё-таки эквивалентны.
 
Текущее время: 17:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru