gpt4 book ai didi

android - 指针取消引用以访问另一个文件中的数组

转载 作者:行者123 更新时间:2023-11-30 17:49:13 24 4
gpt4 key购买 nike

我不断收到空指针取消引用,然后出现内核 panic 。有人可以告诉我如何解决这个问题吗?

文件1.c:

int get_data()
{
int i;
int *mv;
unsigned long *f;

if ((get_data_from_other_file(&mv, &f)) {
return error;
}

for ( i=0; mv[i]; i++)
printf("%d %lu", mv[i], f[i]);
}

文件2.c:

struct data
{
.mv = { 1,2,3,4,5 },
.f = {4,5,5,3,2},
}datas;

int get_data_from_other_file(int **mv, unsigned long **f)
{
*mv = datas.mv;
*f = datas.f;

for ( int i =0; datas.mv[i]; i++)
printf ("%d %lu \n", *(mv[i]), *(f[i]));

return 0;
}

我只是希望能够在不使用 malloc 或 new 或类似的东西的情况下访问 file1 中 file2 的数据。

最佳答案

这里 printf ("%d %lu\n", *(mv[i]), *(f[i])); 您取消引用无效地址。mv[i]f[i] 是您放入 datas 结构中的数字(1,2,3,4, ..)。通过对它们应用 * 运算符,您将尝试访问指定地址 (1,2,3,4..) 处的内存。这显然是错误的,因为这些地址不是您的 - 它们是为系统使用而保留的,并且包含 protected 重要信息。

目前还不清楚您实际尝试执行的操作,但我在代码中没有看到对该文件的任何引用。

重新审视malloc:在内核中您应该使用kmalloc

关于android - 指针取消引用以访问另一个文件中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007011/

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