【发布时间】:2015-11-04 09:27:22
【问题描述】:
我想动态分配内存使用malloc,这样我就可以使用for循环来访问每个数组和数组元素。
我的代码如下所示:
long naxes1[3] = {1,1,1}, naxes2[3] = {1,1,1}, naxes3[3] = {1,1,1}, naxes4[3] = {1,1,1}; //upto naxes20
另一行代码是:
double *pix1, *pix2, *pix3, *pix4, *pix5; //upto *pix20
为了分配内存,我这样做:
pix1 = (double *) malloc(npixels * sizeof(double));
pix2 = (double *) malloc(npixels * sizeof(double));//20 times,
我们如何使用 for 循环来为像素分配内存而不是这个?
此外,
#include"cfitsio.h"
long npixels = 1;
fits_read_pix(names[0], TDOUBLE, firstpix, npixels, NULL, pix1, NULL, &status)
这里,names[i] 是 fitfile 输入的名称,TDOUBLE 是双精度类型,第一个像素,npixels 等是 C 库例程 cfitsio.h 中的局部变量
【问题讨论】:
-
你应该只发布整段代码,这样更难理解,例如,你在
malloc中使用的npixles是什么? -
你在问如何设置一个指针数组来加倍吗?
标签: c for-loop multidimensional-array malloc double-pointer