gpt4 book ai didi

c - C 中的 EXC_BAD_ACCESS 错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:30 24 4
gpt4 key购买 nike

我在 C 中运行一个简单的程序:

#include <stdio.h>
#include <stdlib.h>

void qr_symmetric (double *a, int n, double *b);
void identityshift(double *a, double *b, int size);



int main ()
{
double *a = malloc(10);
double *b = malloc(10);
for (int i = 0; i<9; i++)
{
a[i]=2;
}
qr_symmetric(a, 3, b);
for (int i = 0; i<9; i++)
{
printf("%f\n", b[i]);
}
}

void qr_symmetric (double *a, int n, double *b)
{
b = malloc(10);
for (int i = 0; i<(n*n); i++)
{
b[i]=a[i];
printf("%f\n", a[i]);
}
identityshift(a, b, n);
}

void identityshift(double *a, double *b, int size)
{
int num = a[0];
for (int i=0; i<(size*size); i=(i+size))
{
b[i]=b[i]+num;
}
}

但是,每当我运行代码时,都会在这一行收到 EXC_BAD_ACCESS (code=EXC_I386_GPFLT) 错误:

 printf("%f\n", a[i]);

在它打印 a[i] 两次之后。

似乎无论我用什么替换 a[i],即使是像 2.0 这样的常量,我每次都会收到不同代码的 EXC_BAD_ACCESS 错误。我做错了什么?

最佳答案

mallocbytes 为单位分配内存,您需要将元素的数量乘以单个元素的 sizeof,例如 sizeof(双)

关于c - C 中的 EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23232114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com