for(char* pnew_char = new_char; *pnew_char++ = *--pchar;);
for(; *pchar; ++length, ++pchar);
for(char* pnew_char = new_char; *pnew_char++ = *--pchar;);
if (strcmp(name1, name2) == 1)
The strcmp() and strncmp() functions return an integer less than,
equal to, or greater than zero if s1 (or the first n bytes thereof)
is found, respectively, to be less than, to match, or be greater than
s2.
if (strcmp(name1.c_str(), name2.c_str()) == 0)
Есть программа - она выполняет математические операции. ОЗУ занимает очень много. Больше 25 Гб. Но есть запас ОЗУ.
Когда в кэш процессора данные подгрузились - операции выполняются быстро.
Вопрос - что делать с кэшем?
Есть исходный код на Си, который вызывает функцию на ассемблере, но передаваемые аргументы как получить,
Почему выходит ошибка (error C2131) при использование в rev_list[n]?
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main() {
char list[] = "asdf";
const int n = sizeof(list);
char rev_list[n];
cout << rev_list;
return 0;
}
Как бы Вы написали в makefile если бы у Вас имелось 0.c 1.c 2.c 3.h? Заголовочник 3.h для всех исходников
OBJS := 0.o 1.o 2.o # список объектников, который нам понадобится в двух местах
all: exe # традиционно сборка всего называется all. all зависит от единственного файла: exe
exe: $(OBJS) # файл exe зависит от объектникоа
$(CC) $(LDFLAGS) -o $@ $^ # чтобы собрать exe -- вызвать компилятор, передать ему LDFLAGS, выводить в $@ (т.е. в exe), на вход брать $^ (т.е. всё от чего зависит $@)
%.o: %.c 3.h # объектники зависят от исходников с таким же именем, а так же от 3.h
$(CC) -c $(CFLAGS) -o $@ $< # чтобы собрать объектник -- вызвать компилятор с ключом -c, передать ему CFLAGS, выводить в $@ (т.е. в %.o), компилировать $< (т.е. %.с с тем же именем)
clean: # традиционно очистка всего называется clean
-rm -f $(OBJS) exe # для очистки удалить объектники и exe
.PHONY: all clean # all и clean -- это не файлы
struct tableI { char* name[4]; float doctor[100]; float bunk[100]; } tableI; ... struct tableI a; ... get_name(a.name[0]);
Почему при выводе блока с таблицой выбивает ошибку?
struct tableI
{
char name[4][100];
float doctor[100];
float bunk[100];
} tableI;
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
Почему программа ломается при освобождении памяти?
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 или больше
надеюсь что я что-то не правильно делаю.