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

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прохождение лабиринта в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread391808.html
Мне очень нужна программа по прохождению лабиринта в двумерном массиве...вопрос жизни и смерти...В программировании я полный лох, а программа очень нужна, напишите пожалуйста рабочую в С++.. Сам...
C++ нужна дерево решения для примера! дано пятизначное число найти число полученное при прочтении его цифр с справа налево http://www.cyberforum.ru/cpp-beginners/thread391807.html
вот такой вот пример C++
даны числа a1,a2,...,a10.Определить их сумму оператор цикла и условного оператора! как это ?
C++ что с такой задачей делать ...
Используя рекурсию, ввести группу данных и вывести их в обратном порядке, не объявляя массива.
C++ задача на языке С++ http://www.cyberforum.ru/cpp-beginners/thread391798.html
Помогите пожалуйста решить на языке С++ Файловые потоки 1. Файл содержит длины создать случайным образом программным путём. Вывести содержимое файла по 10 чисел в строке.Вычислить...
C++ Является ли сумма цифр числа двузначным числом Дано двузначное число. Определить: 1)Является ли суммы этих чисел двузначным числом. 2)Больше ли число а суммы этих чисел. как двузначное число например 34 разбить на 3 4 ! чет в с+ не... подробнее

Показать сообщение отдельно
LosAngeles
Заблокирован
25.11.2011, 21:49
генерится SIGSEGV, перехватывается, как и любой другой сигнал(sigaction), только при этом не забыть назначить альтернативный стек, чтобы хэндлер мог выполниться(sigaltstack).

Добавлено через 16 минут
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
#include <stdio.h>
#include <unistd.h>
#include <sys/ptrace.h>
#include <sys/wait.h>
#include <sys/user.h>
 
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
 
 
static int count = 0;
 
void greedy() {
    char ch[1024 * 32];
    printf("%d\n", ++count);
    greedy();
}
 
 
int main(int argc, char *argv[]) {
    struct rlimit rlim;
    
    getrlimit(RLIMIT_STACK, &rlim);
    int x = rlim.rlim_cur / 1024 / 1024;
    printf("%d", x);
    rlim.rlim_cur *= 32;
    setrlimit(RLIMIT_STACK, &rlim);
    x = rlim.rlim_cur /1024 /1024;
    
    printf("%d", x);
    greedy();
    
    
    return 0;
}
а вот так вроде увеличивается стек. Стандартно у меня 8 метров было
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru