小编Chr*_*ber的帖子

在C:访问像2D数组一样使用的char*= malloc()比使用array [] []更快吗?

刚刚遇到这个最近的问题:

如何在C中动态分配2D数组?

我只是想知道:当我使用简单的malloc创建一个2D数组并像这样管理类似2D的访问时:

int row=100;
int col=100;
char* buffer = malloc(sizeof(char)*row*col);
for(int i=0;i<row;i++){
    for(int j=0;j<col;j++){
        buffer[i*col+j]=128;
     }
}
Run Code Online (Sandbox Code Playgroud)

这会(明显)快于创建"传统"2D阵列时的速度吗?因为在前者中我通过顺序访问实现缓冲区优化?还是我错了?

int row=100;
int col=100;
char buffer[row][col];
for(int i=0;i<row;i++){
    for(int j=0;j<col;j++){
        buffer[i][j]=128;
     }
}  
Run Code Online (Sandbox Code Playgroud)

谢谢你的解释.

c memory arrays optimization

1
推荐指数
1
解决办法
136
查看次数

标签 统计

arrays ×1

c ×1

memory ×1

optimization ×1