Надо получить разницу между двумя указателями и передать её одной
кривой фортрановской библиотеке (не спрашивайте, зачем :). Что-то
у меня получаются какие-то странные вещи. Вот простой пример:
$ 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)