В программе есть строки:
#include <string.h>
...
char* where;
char* array;
char* needle;
size_t left, needlelength;
...
where = memmem( array, left, needle, needlelength);
На последнюю строку GCC выдаёт предупреждение:
warning: assignment makes pointer from integer without a cast
Если перед memmap добавить (char*) или (void*), компилируется без предупреждений.
Почему так происходит? Во всех мануалах написано, что memmem возвращает указатели. В заголовочных файлах она есть только в string.h:
extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen)
Система Ubuntu, gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5, версия libc 2.12.1.
Заранее спасибо.
Форум —
Development




