69,369
社区成员
发帖
与我相关
我的任务
分享
float **count;
float **t;
count=(float **)malloc(sizeof(float *)*72628);//根据两个vector大小创建count数组
for(int i=0;i<72628;i++)
count[i]=(float *)malloc(sizeof(float)*73251);
t=(float **)malloc(sizeof(float *)*72628);//创建t变量数组
////出错位置
for(int i=0;i<72628;i++)
t[i]=(float *)malloc(sizeof(float)*73251);
int main (void)
{
int i,j;
float(*t)[5]=(float(*)[5])malloc(sizeof(float)*5*3);
//5代表列数,3是行数
for(i=0;i<3;++i)
for(j=0;j<5;++j)
t[i][j]=1.0;
//这样free一下就OK了
free(t);
return 0;
}
float **count;
float **t;
count=(float **)malloc(sizeof(float *)*72628L);
if (count) {
long int i;
for (i=0;i<72628L;i++) {
count[i]=(float *)malloc(sizeof(float)*73251L);
if (NULL==count[i]) {
while (1) {
i--;
free(count[i]);
if (i==0) break;
}
break;
}
}
if (i<72628L) {
free(count);
count=NULL;
}
}
if (count) {
t=(float **)malloc(sizeof(float *)*72628L);
if (t) {
long int i;
for (i=0;i<72628L;i++) {
t[i]=(float *)malloc(sizeof(float)*73251L);
if (NULL==t[i]) {
while (1) {
i--;
free(t[i]);
if (i==0) break;
}
break;
}
}
if (i<72628L) {
free(t);
t=NULL;
}
}
if (t) {
//use count and t
//...
//...
//free t
for (long int i=0;i<72628L;i++) free(t[i];
free(t);
t=NULL;
//free count
for (long int i=0;i<72628L;i++) free(count[i];
free(count);
count=NULL;
} else {
printf("Can not malloc t!\n");
//free count
for (long int i=0;i<72628L;i++) free(count[i];
free(count);
count=NULL;
}
} else {
printf("Can not malloc count!\n");
}
float **count;
float **t;
count=(float **)malloc(sizeof(float *)*72628);//根据两个vector大小创建count数组
for(int i=0;i<72628;i++)
count[i]=(float *)malloc(sizeof(float)*73251);
t=(float **)malloc(sizeof(float *)*144616);//创建t变量数组
////出错位置
for(int i=0;i<72628;i++)
t[i]=(float *)malloc(sizeof(float)*144616);
这个更大为什么反而可以,求解