arrays - 当我尝试初始化 100 个元素的一维数组并使用指针填充它时出现段错误(核心已转储)

int main(void) {

  int x[100];
  int *myPtr;
  int j;
  myPtr = &(x[100]);

  for (j=0; j<100; j++) {
    *myPtr = j;
    myPtr ++;
  }

  printf("%d", *myPtr);

  return 0;
}

这是我的代码(到目前为止)^ 这些是我的指示:

  1. 创建一个大小为 100 的一维整数数组。 A。使用指针加载数组,其中包含从 0 到 99 的连续数字。 b.使用指针按升序写出数组。 C。使用指针按降序写出数组。

最佳答案

myPtr = &(x[100]); 中的赋值不正确:您使 myPtr 指向数组的末尾,导致在您编写时出现未定义的行为那里和更远。

将赋值更改为 myPtr = x;myPtr = &x[0]; 并将最后一条语句更改为 printf("%d", * x);

修改后的版本:

#include <stdio.h>

int main(void) {
    int x[100];
    int *myPtr;
    int j;

    myPtr = x;

    for (j = 0; j < 100; j++) {
        *myPtr = j;
        myPtr++;
    }

    printf("x contains numbers from %d to %d\n", x[0], x[99]);

    return 0;
}

https://stackoverflow.com/questions/69442123/

相关文章:

go - panic : errors: *target must be interface or

c - 为什么这种 strcpy 的使用被认为是错误的?

php - 我们在 PHP 数组中称这个符号 => 什么?

c - 释放函数内部的指针,并在 main 中使用它

python - Pytorch 与转置之间的不同输出

django - 使用 drf-spectacular 为 django API 定义组件模式

ios - 'CC_MD5' is deprecated : first deprecated in

next.js - Next JS 中的 Font Awesome 6(测试版)和动态图标名称

c - C如何计算混合的int和float数据类型

c++ - C++ 中具有不同数据成员的模板结构