小编gee*_*ngh的帖子

为什么我会收到警告:(接近初始化'ptr')和运行时的分段错误,当指针上有值时?

这是以下代码:当我尝试访问数组的第一个值时,为什么它会给出分段错误?这些警告是什么?

#include<stdio.h>
int main(void)
{
    int *ptr = {1,2,3,4,5};//Is it not similar to char *ptr="Stackoverflow"?
    printf("%d\n",*ptr);// why Segmentation fault(core dumped) instead of 1
    return 0;
}

...
output:

warning: initialization makes pointer from integer without a cast [enabled by default] 
int *ptr = {1,2,3,4,5};
^

warning: (near initialization for ‘ptr’) [enabled by default]
warning: excess elements in scalar initializer [enabled by default]
warning: (near initialization for ‘ptr’) [enabled by default]
warning: excess elements in scalar initializer [enabled by default]
warning: …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers initialization

3
推荐指数
1
解决办法
3140
查看次数

标签 统计

arrays ×1

c ×1

initialization ×1

pointers ×1