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

Передать в функцию размер массива указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу найти\исправить ошибку http://www.cyberforum.ru/cpp-beginners/thread250191.html
Делаю телефонный справочник (думаю всех у универах заставляют :D) Ну вот, я вроде сделал, но не могу понять где ошибка, точней даже не знаю как исправить, кто чем может помогите)) Сама ошибка в том, что при выводе списка имён и прочего, всё зацикливается и бесконечно выводит одно и тоже.. Ну думаю поймёте, про что я, как посмотрите... Вот исходник: Вот сам код, навсякий, если кому лень...
C++ Статический массив в динамическом int** unsIntText = new int*; //создаём "столбцы" for (int i = 0; i < _unsCharMod; i++) unsIntText; for (int i = 0; i < _unsCharMod; i++) { //по столбцам http://www.cyberforum.ru/cpp-beginners/thread250190.html
Создать класс прямоугольник. C++
Помогите, пожалуйста!! не могу решить задачу, очень важно! Условие: нужно создать класс прямоугольник. Определить в нем конструктор, деструктор, конструктор, копирование. Перегрузить операции +,-,=. Перегрузить операции ввода и вывода.Написать программу калькулятор, который позволит пользователю производить арифметические операции с объектами данного класса. Буду рада, если поможете хоть...
C++ почему при задании xn отрицательное и xk положительное цикл прекращает выводить x достигнув значения 0
Подскажите пожалуйста почему при задании xn отрицательное и xk положительное цикл прекращает выводить x достигнув значения 0 #include <iostream> #include "math.h" using namespace std; int main() { setlocale( LC_ALL,"Russian" ); float a, b, c, x, xn, xk, dx, ac, bc, cc, F;
C++ Дружеские функции и перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread250126.html
я зоздал класс стека вот class CMyStack { public: CMyStack(); ~CMyStack(); void Push(int d); int Pop(); bool isEmpty();
C++ Философский вопрос: Как понять, что ты знаешь язык? Вот, допустим, я знаю С++ стандартный вполне неплохо. STL и т.д. Я абсолютно не знаю Boost. Но полагаю, что разобраться в нем вполне возможно и наверное с определенными библиотеками относительно просто. Я не знаю некоторых фичей C++0x например потоков, лямбда-фукнций на высоком уровне и некоторых других вещей. Очень плохо знаю MFC... Относительно для новичка знаю Qt (что-то смогу написать).... подробнее

Показать сообщение отдельно
erro1
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 10
28.02.2011, 21:53     Передать в функцию размер массива указателей
Всем привет. Есть массив указателей допустим char *array[] = { "строка 1", "строка 2"... "строка n" }
Нужно предать его размер (sizeof()) в функцию.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <curses.h>
#include "my_header.h"
 
 
using namespace std;
 
int i, g_Choice = 0;
 
char *main_menu[] = {
                 "1. Add item",
                 "2. Delete item",
                 "3. Tasks",
                 "3. Enter as Admin",
                 "4. Register an Admin",
                 "5. Display all",
                 };
 
void menu()
{
    int menu_pointer = 1;
    int ch;
    int n_choices = sizeof(main_menu)/sizeof(char *);
 
    keypad(stdscr,TRUE);
    show_menu(menu_pointer, n_choices, main_menu);
    while(TRUE)
    {
        ch = getch();
        switch(ch)
        {   case KEY_UP:
                if(menu_pointer == 1)
                    menu_pointer = n_choices;
                else
                    --menu_pointer;
                break;
            case KEY_DOWN:
                if(menu_pointer == n_choices)
                    menu_pointer = 1;
                else
                    ++menu_pointer;
                break;
            case 10:   // "Enter" key
                g_Choice = menu_pointer;
                break;
        }
        show_menu(menu_pointer, n_choices,main_menu);
        if(g_Choice != 0)     /* Choice is done,come out of the infinite loop */
            break;
    }
    //printw("Your choice is \"%s\" ",main_menu[choice-1]);
    refresh();
}
 
int main()
{
    b   = new book[books_count];
    adm = new admin[admin_count];
    initscr();  // Initiliazation
    cbreak();   // Line buffering disabled
    noecho();
    attron(A_BOLD);     // Bold text
   
    getch();
    endwin();
 
}
хочу что-то типо
C++
1
void menu(*char what_menu) // везде вместо main_menu будет what_menu, чтобы создавать меню из любых массивов
но sizeof(what_menu) мне выводит 1 (вместо 20 (5*4))
my_header.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void show_menu(int highlight, int choice_count, char* choices[])
{
    int x;
    clear(); start_color();
    if(has_colors() == FALSE)
    {   endwin();
        printf("Your terminal does not support color\n");
    }
    init_pair(2, COLOR_GREEN,  COLOR_BLACK);
    x = 2;
    for(int i = 0; i < choice_count; i++)
    {
        if(highlight == i + 1)              /* High light the present choice */
        {
             attron(COLOR_PAIR(2));
             mvprintw(x,3,"%s \n", choices[i]);
             attroff(COLOR_PAIR(2));
        }
        else mvprintw(x,3,"%s \n", choices[i]);
        x+=2;
    }
    refresh();
}
Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru