可能重复:
分段尝试在C中打印值时出错
我对C很新,但不知道为什么这个程序会破坏.如果我删除了与之相关的行,程序将编译并运行i,但如果我分配i,我不能再分配任何东西*ptr而不打破程序.
int main(void)
{
int i;
int *ptr;
i = 2;
*ptr = 5;
printf("%d",*ptr);
}
Run Code Online (Sandbox Code Playgroud)
Kos*_*Kos 11
您将指针保留为未初始化的值.因此,当您取消引用它(*ptr)时,您将访问内存中的任意位置,从而导致分段错误.
ptr通过为ptr自己(不*ptr)分配变量的地址(如&i)或某些新分配的内存(如malloc(sizeof(int)))来指向某事物.
| 归档时间: |
|
| 查看次数: |
41213 次 |
| 最近记录: |