Описание тега memcmp

NoneMemcmp - это функция, доступная в библиотеке string.h.
1 ответ

Неожиданная ошибка в memcmp

Следующая простая программа segfaults для меня: #include <string.h> int main() { void* voidp = NULL; char zeroes[sizeof(void*)]; memset(zeroes, 0, sizeof(void*)); int res = memcmp(&voidp, zeroes, sizeof(void*)); return 0; } Отладчик показы…
19 дек '10 в 23:58
2 ответа

Могу ли я использовать memcmp для проверки структуры на ненулевые члены?

Я использую большую структуру со многими членами, и я хотел бы простой способ быстро увидеть, если какой-либо из членов ненулевой. я знаю это memcmp() Не следует использовать для сравнения двух структур на равенство (как описано здесь: Как вы сравни…
14 окт '16 в 02:52
4 ответа

Самое быстрое сравнение массива u_int64_t[8] в C/C++

Какой самый быстрый метод, чтобы сравнить два u_int64[8] массивы в C/C++? Массив 1 находится внутри std::vector (~10k элементов) массив 2 находится внутри динамически распределенной структуры. (является memcmp() тут ложный позитив бесплатный?) Моя (…
05 дек '14 в 13:08
2 ответа

Почему я получаю ошибку сегментации? Я использую stat, mmap, nftw и memcmp, между прочим

Вот мой код Я предполагаю, что это как-то связано с неправильным использованием указателей или, может быть, я неправильно отображаю и удаляю карту из памяти. Может ли кто-нибудь дать мне некоторое представление об этой проблеме? #define _XOPEN_SOURC…
02 апр '13 в 04:12
1 ответ

Ссылка на функцию ловушки netfilter сломала мою систему

Пожалуйста, посмотрите на фрагмент кода char ipAddr[] = {192, 168, 88, 2}; struct iphdr *ip_hdr = (struct iphdr*)(some_valid_eth_hdr_pointer + 1); if (0 == memcmp((void*)(ip_hdr->saddr), (void*)ipAddr, 4)) /*memcmp cause my whole system crashed*/…
21 апр '12 в 14:59
2 ответа

Как получить подстроку в c с помощью strchr

Я пытаюсь получить часть строки.У меня есть следующий код: #include <stdio.h> #include <string.h> #include <stdlib.h> char mystring[]="The quick brown fox jumps over the lazy dog"; char word1[]="The"; char * posb,pose; char * word2…
23 дек '15 в 11:05
2 ответа

Ада проблема с STORAGE_ERROR

У меня есть эта небольшая функция, которая вызывает у меня головные боли на RHEL6, и я не уверен, что происходит... и это отладка. Когда я запускаю это, я получаю STORAGE_ERROR, поэтому я сделал gstack, чтобы увидеть, где висит программа (см. Ниже).…
07 июл '11 в 20:18
3 ответа

Лучший способ сравнить хэши sha1 на равенство

Я хочу сравнить два хэша sha1 на равенство. Что может быть наиболее эффективным способом сделать это? В настоящее время я пытаюсь использовать memcmp. Благодарю.
14 мар '12 в 08:31
1 ответ

Segfault при использовании memcmp()

Я получаю сегфо в этой строке: if(memcmp(datap, 0x38 , 1) == 0) Это след от GDB, вы можете увидеть здесь: Program received signal SIGSEGV, Segmentation fault. 0x00000000004010f1 in processMTMHeader ( datap=0x2aaaab0b001c "1\34\66\63\36\65\34\66.\36\…
10 фев '14 в 10:15
2 ответа

Сравнение двух строковых литералов с использованием memcmp

Я сравнил два строковых литерала, используя memcmp функция. #include <stdio.h> #include <string.h> int main() { char str1[] = "abcd"; char str2[] = "ab"; if (memcmp(str1, str2, 4) == 0) { printf("equal string\n"); } return 0; } В вышеука…
4 ответа

memcmp с массивами массивов

В C я хочу проверить заданный массив символов на произвольную букву и изменить его в соответствии с тем, что есть. Например, символы "a" или "A" будут изменены на "4"(символ, представляющий 4). Для меня это упражнение по кодированию:) Код выглядит с…
19 сен '12 в 06:43
1 ответ

Может ли произойти сбой сегментации для чтения памяти?

Я думаю, что чтение памяти не должно вызывать каких-либо проблем, например char *d=""; char *d2="test"; memcmp(d,d2,10); Можно memcmp() когда-нибудь не получится?
05 мар '14 в 19:37
8 ответов

Реализация memcmp

Ниже приводится реализация memcmp для Microsoft CRT: int memcmp(const void* buf1, const void* buf2, size_t count) { if(!count) return(0); while(--count && *(char*)buf1 == *(char*)buf2 ) { buf1 = (char*)buf1 + 1; buf2 = (char*)buf2 + 1; } ret…
16 фев '11 в 14:31
3 ответа

Почему memcmp возвращает -1, хотя и равен

Я сравниваю с использованием memcmp() две переменные одной и той же структуры (в структуре есть объединение). Переменные находятся в двух массивах, и я запускаю цикл, где я делаю каждую итерацию memcmp(&arr1[i], &arr2[i], sizeof(arrtype)), П…
15 июл '13 в 09:25
1 ответ

Передача 3-го параметра в memcmp как -1 возвращает 0

Для memecmp() третьим параметром является size_t(без знака). Но когда мы передаем третий параметр, когда -1 возвращает всегда 0, даже если блок памяти, на который указывают первый и второй параметры, отличается?
19 авг '15 в 08:09
1 ответ

Memcpy func принимает переменную Pointer? char *p; char* q; тетср (р, д,10); это будет работать?

Memcpy а также memcmp функция может принимать переменную Pointer? char *p; char* q; memcpy(p,q,10); //will this work? memcmp(p,q,10); //will this work?
24 фев '15 в 14:05
3 ответа

Почему это медленнее, чем memcmp

Я пытаюсь сравнить два ряда pixels. pixel определяется как struct содержащий 4 float значения (RGBA). Причина, по которой я не пользуюсь memcmp потому что мне нужно вернуть положение 1-го другого пикселя, который memcmp не делает. Моя первая реализа…
10 фев '13 в 10:01
1 ответ

memcmp из PInvoke в C# не работает должным образом для массивов больше, чем 4x4

Часть PInkove была взята из какого-то SO ответа (извините, я потерял ссылку на оригинал). Ниже приведена полная программа. Выход false, using System; using System.Runtime.InteropServices; namespace Memcpy { class Program { [DllImport("msvcrt.dll", C…
05 окт '15 в 22:02
3 ответа

Могу ли я использовать memcmp два строки сравнения многобайтовых символов?

Я пытаюсь написать код для сравнения двух строк. В Windows я могу использовать strcmp, но я хочу написать для многобайтовой символьной строки, чтобы она была совместима со всеми другими платформами. Могу ли я использовать memcmp? если нет, то есть л…
27 фев '12 в 06:18
1 ответ

Возвращаемое значение memcmp, несогласованность

Вот небольшой код C, чтобы выделить проблему возвращаемого значения memcmp: char *str1 = "\200"; char *str2 = "\0"; int val1 = memcmp(str1, str2, 2); int val2 = memcmp("\200", "\0", 2); printf("val 1 : %d \n",val1); printf("val 0 : %d \n",val2); Ста…
29 ноя '18 в 09:44