|
|
1
3
首先,您的代码在第二个新的\u screen()调用中没有分段。你误导了我们:)代码崩溃,当你试图访问它。你的主要问题在于:
既然您已经分配了指向struct pixel数组的指针,为什么会得到int的大小。您应该将其更改为:
那就一切都好了。但是。。。
首先可以将位图定义为struct pixel*bitmap; 并为结构分配一个空间 位图=malloc(宽度*高度*大小(结构像素)); 然后可以访问(x,y)处的像素作为位图[y*WIDTH+x]。你也可以在函数中隐藏它。 另外,你的宽度和高度符号的习惯是相当尴尬的。在后面的循环中,您以通常的方式循环位图数组,但这会导致许多缓存未命中。因为您是按垂直顺序寻址数组。
|
|
|
2
1
所以你有:
但是当你去分配
你去哪了
为避免此类错误,最好:
(另外,您应该检查
作为补充,我要说的是,您的分配方案有点不寻常:您是按列分配的,但通常图像是按行存储的。我知道这样做是为了可以使用(x,y)坐标来表示数组下标,但在我看来,最好不要反对矩阵(行,列)约定。 |
|
|
3
0
试试这个: 结构像素位图[][];
|
|
9-Pin · 释放具有内部空字节的动态分配字符串 1 年前 |
|
Viewed · 如何从popen中获得结果? 1 年前 |
|
|
dhutturi · malloc()没有分配我期望它[复制]的内容 2 年前 |
|
|
vansergh · 如何为malloc分配的数组释放内存? 2 年前 |
|
|
EagleStar · 显示错误的值:C指针还是malloc问题? 2 年前 |