作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 this伯克利类(class)和this斯坦福类(class),将 int
分配给 pointer
就像这样应该会使我的程序崩溃:
#include<stdio.h>
int main() {
int *p;
*p = 5;
printf("p is %d\n", *p);
return 0;
}
然而,当我在 OSX 10.9.2 上使用 GCC {Apple LLVM 版本 5.0 (clang-500.2.79)(基于 LLVM 3.3svn)} 编译它时,我得到以下输出:
Chris at iMac in ~/Source
$ ./a.out
p is 5
怎么会?我看到有人问了相反的问题 ( Allocating a value to a pointer in c ),但这只会让我更加困惑,因为我的程序几乎与该问题中发布的代码相同。
最佳答案
您没有将 int
分配给 pointer
。如果 p
是指针,则 *p
指向它的值。您正在分配 *p = 5;
,这是对整数分配的纯整数。
在这种情况下,p
没有被初始化,可能会导致段错误。
关于c - 在 C 中将一个 int 值赋给一个指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051203/
我是一名优秀的程序员,十分优秀!