strcpy(A[i+1].firstName, A[i].firstName); ... A[i].age = A[i+1].age;
суть конкретно этого куска задачи — удаление строки с данным(делаю путем переприсваивания на следующую строку и уменьшением количества строк на единицу)
Казалось бы, в обоих случаях у нас вызов конструктора,
A a();
-- это объявление функции a, без параметров, возвращающей значение типа A.
И получаем странную ошибку при компиляции:
ssd1306_128x32_i2c_test.ino:50:3: error: request for member 'f' in 'a', which is of non-class type 'A()'
Есть две машины, подключенные через маршрутизатор.
написать драйвер устанавливающий соединение, обмен ключами и шифрование всех пакетов между машинами
на каком уровне OSI
printf("something\n")
, без точки с запятой -- это expression, а именно вызов функции) и "statement" (например if (expression) statement
-- это statement), а иногда expression может быть statement'ом (например, printf("something\n");
, с точкой с запятой), это называется "expression statement".
Как называть по-человечески строчки:if ( a > b ) printf("something\n");
if
с единственной инструкцией-выражением.А такое:if(condition) { printf("something1\n"); printf("something2\n"); }
if
с составной инструкцией содержащей две инструкции-выражения. Есть от 30 до 70 esp8266, которые генерируют данные и должны отправлять эти данные на сервер.
Как это организовать ?
Почему программа ломается при освобождении памяти?
char *response = new char[line.size()]; std::strcpy(response, line.c_str());
char *response = new char[line.size() + 1];
Весь код считает сколько символов с строке введены пользователем
set<char> c(text.begin(), text.end()); // (std::)set<char> -- это множество (без повторений) символов.
// с -- это имя переменной.
// Конструктор множества с двумя итераторами добавляет во множество
// все объекты между этими итераторами. Т.е. все буквы из строки text.
int col = c.size(); // про c -- см. выше. std::set::size возвращает размер множества.
мне надо в цикле на каждой итерации запрашивать ввод строки.
cin » s1
позволяет это сделать, а
scanf("%255[^\n]", s1)
только 1 раз.
scanf("%255[^\n]\n", s1);
char *p;
scanf("%m[^\n]\n", &p);
В онлайн компиляторе все норм
char * readLine() {
std::string line = "";
...
std::cout<< (char *)line.c_str()<<"\n"; // Response - все норм
return (char *)(line.c_str());
// в этот момент line уничтожается, и вместе с ним становятся недействительными
// указатели полученные функцией c_str()
}
std::string
, не мудри. Как работают функции sleep
Socket* Socket::accept() { /* ГДЕ то тут инициализирую this->address = str_addr; // 127.0.0.1 */ return new Socket(client_sock_id); } // ВЫЗЫВАЮ ЗДЕСЬ Socket *c = s.accept(); // с->getAddress()// выходят русские буквы МММ....-штук под 100 или больше
надеюсь что я что-то не правильно делаю.
В моём случае recv взращает -1, что говорит о том что произошла ошибка, какая и почему?.
errno
, perror
, вот это всё.while(int s1 = accept(sock, 0, 0)) //принимаем соединения для работы с ними { int k = recv(sock, &buff, sizeof(buff), MSG_NOSIGNAL);
s1
, а recv
читает из sock
.