Надо получить разницу между двумя указателями и передать её одной кривой фортрановской библиотеке (не спрашивайте, зачем :). Что-то у меня получаются какие-то странные вещи. Вот простой пример: $ cat ptr.c #include <stdio.h> #include <stddef.h> int main() { void *a = (void *) 0x81792d8; void *b = (void *) 0xb7d23e5c; ptrdiff_t diff = a - b; printf("a=%p, b=%p, diff=%ti\n", a, b, diff); return 0; } $ gcc ptr.c -o ptr $ ./ptr a=0x81792d8, b=0xb7d23e5c, diff=1346720892 Итак, получается, что 0x81792d8 - 0xb7d23e5c = 1346720892, хотя любой калькулятор скажет, что должно быть -2948246404. Где я туплю?
Ответ на:
комментарий
от Kpoxman
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от ero-sennin
Ответ на:
комментарий
от ero-sennin
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от ero-sennin
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от ero-sennin
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Какая-то дичь в Си (2016)
- Форум Разница между UTC и локальной таймзоной (2015)
- Форум Linux это UNIX (2021)
- Форум Вопрос по printf (2005)
- Форум проблема массивом указателей (2008)
- Форум /usr/bin/ld: cannot find -lc (2012)
- Форум pthread (2008)
- Форум Зацените как GNU C умеет (2008)
- Форум Простейший вопрос - свои первые строчки на C. Где argv ? (2004)
- Форум Загадки при считывании scanf'ом в C (2016)