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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка бинарных операций http://www.cyberforum.ru/cpp-beginners/thread161155.html
Привет! Начал изучать перегрузку операций. В отступление хочется сказать, что это очень увлекательно и интересно. Но в моей книге, есть один момент, который я не понял. Вернее понял, но не до конца. Итак, что диктует книга: Существует правило: объект, стоящий с левой стороны операции, вызывает функцию оператора. Объект, стоящий справа от знака операции, должен быть передан в функцию в...
C++ Имитация нажатия клавиш С/С++ Задача такая: Программа должна имитировать нажатие клавиш в фоновом режиме. То-есть она должна нажимать заранее заданные кнопки(кнопку), с определенной периодичностью. Что-то вроде бота. Каким способом это реализовать ? (на С или на С++ разницы нет, главное что бы работало) Добавлено через 33 минуты Вопрос решил, тему можно закрыть. 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::B? В меню Settings > Compiler and debugger только опции g++. Помогите пжалста, надоело компилить в консоли.
C++ считывание строки http://www.cyberforum.ru/cpp-beginners/thread161144.html
ввело в ступор... как считать строку без применения стринга..ну т.е.: char a; cin >> a; как мне теперь считать строку...какой функцией
C++ Перевод стандартных потоков ввода/вывода в файлы Интересует сея возможность.. Знаю про freopen с С файлами, но вот интересна такая возможность в С++. В книгах и сети написано типа такого: ofstream ofs; // открыли файл if(ofs) { cout=ofs; } Вполне неплохо. Но у меня так работать не хочет. Пробовал разными способами. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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() резервирует памяти не меньше, чем запрошено, но может вернуть больше (из-за заморочек с выравниванием).
 
Текущее время: 19:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru