#include <cassert>
#include <cstdlib>
#define DEBUG;
namespace mem
{
constexpr std::size_t memory_limit = 200 * 1024 * 1024;
static std::size_t max_alloc = 0;
void* malloc( std::size_t size )
{
max_alloc += size;
return std::malloc(size);
}
}
int main()
{
int* a = (int*)mem::malloc(49 * 1024 * 1024 * sizeof(int));
#ifdef DEBUG
assert(mem::max_alloc < mem::memory_limit);
#endif // DEBUG
int* b = (int*)mem::malloc(1 * 1024 * 1024 * sizeof(int));
#ifdef DEBUG
assert(mem::max_alloc < mem::memory_limit);
#endif // DEBUG
std::free(a);
std::free(b);
}
buf[i] = _getch(stdin)
считывает из stdin введенный символ сразу в buf[i] не дожидаясь нажатия Enter (dec 13, hex 0x0d, '\r' ). введенные символы не выводятся.putchar(buf[i]); ++i;
putchar() выводит символ из buf[i] в stdout, ++i инкремент i #include <iostream>
#include <vector>
#include <algorithm> // find_if
#include <numeric> // accumulate
using namespace std;
int main()
{
vector<int> v = {-5, -9, 5, -8, -6, -13, -21, -7, -3, 9, -11, -12};
auto first { find_if(begin(v) , end(v), [](auto& x){ return x > 0; }) };
auto second { find_if(++first , end(v), [](auto& x){ return x > 0; }) };
cout << accumulate(first, second, 0) << endl;
}
int **matrix = new int*[m + 2];
for (int i = 0; i < m; i++)
matrix[i] = new int[m];
matrix[m + 1] == nullptr;
matrix[m + 2] == nullptr;
matrix[i][m + 1] = minus;
gcc helloworld.c -o helloworld.exe
а проблема с кодировкой не с Си, а в консоли Windows.