Хочу перейти к другому значению через добавление константы к указателю, но выводит не то значение, что нужно.
int min(int m, ...) {
int *ptr = &m;
int min = *(ptr + 1);
if (*ptr == 0)
return 0;
for(; *ptr; ptr++) {
if (*ptr < min)
min = *ptr;
}
return min;
}
*ptr работает нормально, но уже *(ptr + 1) не выдаёт то, что нужно.
Если всё-таки интересует, почему не получалось с указателями, возможно, это подскажет почему.
#include <stdio.h>
#define LIMIT 100
void searchoffset(int findwhat, ...)
{
int *args = &findwhat;
printf("first element: %p : %d\n\n", args, *args);
args++;
int counter = 0;
do
{
printf("offset: %d [%p : %d]\n", counter, args, *args);
args++;
counter++;
} while (*args != findwhat);
printf("offset: %d [%p : %d]\n", counter, args, *args);
}
int main()
{
searchoffset(135, 2, 11, 144, 25, 7, 135);
return 0;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей