打印指针时出现分段错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印指针时出现分段错误相关的知识,希望对你有一定的参考价值。
[在运行此C代码时,我得到了Segmentation Fault
。
#include<stdio.h>
int main(){
int l1=5, l2=5;
int* c=(int*)malloc(sizeof(int)*(l1+l2));
int* c_ptr=&c;
*c_ptr=6;
c_ptr++;
*c_ptr=7;
for(int i=0;i<=3;i++){
printf("%d ", *(c+i));
}
}
我想知道为什么显示Segmentation Fault
。有人可以帮忙吗?
答案
原因是您要取消引用的地址6、10、14、18。也就是说,您无法使用*
运算符访问这些地址。
简单更改
int* c_ptr=&c;
to
int* c_ptr=c;
并且不会引起分段错误。
以上是关于打印指针时出现分段错误的主要内容,如果未能解决你的问题,请参考以下文章