У меня есть следующий кодкак сохранить указатель приращение
void fun(int * d)
{
d+=1;
}
int main()
{
int * f=malloc(5);
f[0]=0;f[1]=1;f[2]=2;f[3]=3;f[4]=4;
fun(f);
printf("value : %d\n",*f);
return 0;
}
Итак, я передать целое указатель на функцию и увеличить его там. Я хочу, чтобы этот приращение сохранялся, когда он возвращается к основному. Когда я печатаю значение, выход «0». Но я хочу, чтобы результат был «1», поскольку я увеличил значение в функции.
Итак, вкратце, мой вопрос заключается в том, как сохранить изменения, внесенные в указатель?
Кроме того, 'malloc (5)' будет выделять 5 байтов, что чаще всего не совпадает с 5 int. –
Как сказал @BoPersson, вы должны сделать 'malloc (5 * sizeof (int))', чтобы получить правильное количество памяти, или 'malloc (5 * sizeof * f)', если вы когда-нибудь передумали о '* f типа. –