当前位置: 首页 > 知识库问答 >
问题:

一个不同的方法来malloc一个2D数组?

伯和蔼
2023-03-14
#include <stdio.h>

int main(){
    int (*p)[2] = malloc(3 * sizeof *p);
    int i;
    int j;

        //All addresses printed here are contiguous
    for(i=0; i<3; i++){
        for(j=0; j<2; j++){
            printf("%d\t", &p[i][j]);
        }
        printf("\n");
    }
}

共有1个答案

景成和
2023-03-14

那么下面不应该是动态分配一个2D数组的正确方法吗?

它应该这样做,因为这种方法等同于声明一个“静态分配的”多维数组。

这样做的原因是,通过这种方式,您可以获得一个连续的内存块,这很方便(您不能在指针到指针的指针上使用memset(),对吗?),而且您仍然可以让编译器为您进行指针算术和数组下标计算(这也很方便)。

 类似资料:
  • 问题内容: 在Bruce Eckel的“ Thinking In Java,第四版”的第428页(有关类型信息的章节)中,具有以下示例: 也许我有点累,但是我看不到add()方法中对add()的调用是如何工作的。我一直认为它应该有一个引用,或者是一个静态方法(并且我在ArrayList或List中找不到静态add())。我想念什么? 我只是为自己测试,发现这可行: 问题答案: Java为这样的方法

  • 我有一个打字稿2类,目标是ES5。当我运行它时,我在控制台的主题行中得到了错误。Switch语句工作正常,但增量()和减量()方法不执行。

  • 我有一个4类的代码,甲板,卡,玩家和测试。 我的想法是创建一个21点游戏,玩家有你的“手”与甲板上提供的卡。我的代码工作正常,但是我只想要一个方法返回两个不同的数组。 我的代码简历: 牌:一张牌(价值,花色) 套牌:创建一个包含 52 张牌的牌阵列。一个类的方法提供Cards()来获取玩家的卡。 玩家:一类有牌阵列的“手牌” 问题在哪里? 看“Deck”类,我使用了2个方法,provideCard

  • 我有一个Lambda函数,它将DynamoDB流消息推送到SNS。如果我把批量大小设为10,它可以合并两个不同流的记录吗? 例如:Stream1有一个由2个对象组成的数组,Stream2也有一个由2个对象组成的数组。如果我将批大小设置为10,lambda会创建2个批(每个流一个),还是将两个流的对象合并并将它们放在单个批下。假设两条流同时到达Lambda。

  • 问题内容: 我是python的新手。我试图在类中将值从一种方法传递给另一种方法。我搜索了该问题,但无法获得适当的解决方案。因为在我的代码中,“ if”正在调用类的方法“ on_any_event”,而该方法反过来应该调用我的另一个方法“ dropbox_fn”,该方法利用了“ on_any_event”中的值。如果“dropbox_fn”方法在类之外,它将起作用吗? 我将用代码说明。 这里的主要问

  • 我想知道是否可以将变量和(它们都位于类中的方法中)用于类中的方法,以便在类中输入的用户名和密码将与类中的输入匹配。