LINUX.ORG.RU

Какая-то дичь в Си

 , ,


0

1
#include <stdio.h>
void log(int x)
{
  int *ptr = x;
  *ptr += 17;
  printf("%d\n", *ptr);
}

int main(void)
{
  int n = 20;
  log(&n);
  return 0;
}


Этот код падает с сегфолтом
Почему нельзя так делать? Или может я неправильно делаю?

★★

Последнее исправление: beastie (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Тогда грусть-печаль.

Да, ты прав. Придётся винца бахнуть сегодня.

UVV ★★★★★
()
Ответ на: комментарий от i-rinat

-fno-strict-aliasing

Единственный вменяемый комментарий за весь тред.

Manhunt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.