C程序不分段

我试图故意使我的程序出现段错误,但由于某种原因,它并非如此,我有点害怕认为配置可能有问题。

这些是我运行的程序:

int main() {
  char* abc;
  abc[0] = '3';
  return 0;
}

int main() {
  int try[] = {3,4,2};
  printf("%d", try[10]); // this prints '0'
  return 0;
}

有人可以解释为什么他们不进行段隔离吗?对于上下文,我运行的操作系统是macOS Catalina。