gpt4 book ai didi

c - 在C中设置二维数组的起始内存地址?

转载 作者:行者123 更新时间:2023-11-30 15:13:26 25 4
gpt4 key购买 nike

我有一个二维结构数组,如下所示:

struct foo {
int bar;
float baz;
};

我现在实际上正在学习操作系统开发,我想做的一件事是创建这些结构的二维数组,尺寸为 80x25:

struct foo foobar[80][25];

虽然我需要将其设置为地址0xb8000,因为这是视频内存的起始位置。有什么方法可以指定数组的起始地址吗?

到目前为止,我已经尝试这样做:

struct foo foobar[80][25];
*foobar = (struct foo) 0xb8000;

但这行不通。编辑:另外,这样做对于 c99 标准来说是合法的和/或可能的吗?

最佳答案

您不能在特定位置声明数组,但可以使用指针:

struct foo *x;
x = (struct foo*)0xb8000;

这应该可行,但如果您从普通程序尝试这样做,操作系统可能会提示,除非它是 DOS 或类似的程序。

关于c - 在C中设置二维数组的起始内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601799/

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