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

Размер матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка бинарных операций http://www.cyberforum.ru/cpp-beginners/thread161155.html
Привет! Начал изучать перегрузку операций. В отступление хочется сказать, что это очень увлекательно и интересно. Но в моей книге, есть один момент, который я не понял. Вернее понял, но не до конца....
C++ Имитация нажатия клавиш С/С++ Задача такая: Программа должна имитировать нажатие клавиш в фоновом режиме. То-есть она должна нажимать заранее заданные кнопки(кнопку), с определенной периодичностью. Что-то вроде бота. Каким... http://www.cyberforum.ru/cpp-beginners/thread161154.html
Алгоритм Кнута-Морриса-Пратта C++
здравствуйте. можете объяснить по примеру алгоритм кнута-морриса-пратта
C++ Включение поддержки C99 в CodeBlocks
Здравствуйте! Нужно написать прогу на C (без плюсов, желательно чтоб стандарт С99). Пишу в C::B. Эта сволочь мне выдает: use option -std=c99 or -std=gnu99 to compile your code. (использую gcc)...
C++ считывание строки http://www.cyberforum.ru/cpp-beginners/thread161144.html
ввело в ступор... как считать строку без применения стринга..ну т.е.: char a; cin >> a; как мне теперь считать строку...какой функцией
C++ Перевод стандартных потоков ввода/вывода в файлы Интересует сея возможность.. Знаю про freopen с С файлами, но вот интересна такая возможность в С++. В книгах и сети написано типа такого: ofstream ofs; // открыли файл if(ofs) { cout=ofs; }... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
24.08.2010, 04:41
Есть крайне ненадёжный и работающий только в несертифицированных Microsoft операционных системах, но по-своему забавный способ...
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
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
void print_sizes(int ** matrix){
    printf("Rows: %d\tColumns: %d\n", malloc_usable_size(matrix) / sizeof(int*),
        malloc_usable_size(*matrix) / sizeof(int));
}
 
int main(void){
    int rows, columns, **matrix, i;
    
    printf("Rows: ");
    scanf("%d", &rows);
    printf("Columns: ");
    scanf("%d", &columns);
    
    if ( ( matrix = (int**)malloc(sizeof(int*) * rows) ) == NULL ){
        perror("malloc");
        exit(1);
    }
    for ( i = 0; i < rows; ++i ){
        if ( ( matrix[i] = (int*)malloc(sizeof(int) * columns) ) == NULL ){
            perror("malloc");
            exit(1);
        }
    }
    
    printf("Created matrix with sizes:\n");
    print_sizes(matrix);
    
    for( i = 0; i < rows; ++i )
        free(matrix[i]);
    free(matrix);
    
    exit(0);
}
Засада в том, что malloc() резервирует памяти не меньше, чем запрошено, но может вернуть больше (из-за заморочек с выравниванием).
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru