标题:[Error] invalid types 'int[int]' for array subscript
只看楼主
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
结帖率:0
 问题点数:0 回复次数:9 
[Error] invalid types 'int[int]' for array subscript
这个错误是什么意思啊,怎么改呢
搜索更多相关主题的帖子: invalid 
2015-10-22 18:50
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
代码?

那一年,苍井空还是处女
2015-10-22 18:59
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
得分:0 
回复 2楼 外部三电铃
是的
2015-10-22 19:44
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:0 
回复 4楼 william8070
我是说,你的代码在哪里?不看代码光看错误,你以为大家都是神人啊,能隔空把脉

那一年,苍井空还是处女
2015-10-22 19:47
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
得分:0 
回复 5楼 外部三电铃
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int *value=new int[256*256];  //存像素的数组空间


void OpenDat()//打开文件(图像)
{
FILE *fp;
if((fp=fopen("E:\\Lena.raw","rw"))==NULL)
exit(0);
//    return true;

}


bool ReadDat()//读图像
{
FILE *fp;
int i,j;
for(i=0;i<256;i++)
for(j=0;j<256;j++)
{
if(fread(&value[i][j],8,256,fp)!=1)
printf("error\n");
}
fclose(fp);
}


bool WriteDat()  
{
FILE *fp;
int i,j,k;
if((fp=fopen("E:\\result.txt","rw"))==NULL)
exit(0);

for(i=0;i<256;i++)
for(j=0;j<256;j++)
{
fwrite(&value[i][j],8,256,fp);
}
for(k=0;k<256;k++)
{
printf("%d\t%f",k,value);
}
}


void main()
{
//    int * value[256][256]=new int[256*256];
OpenDat();
ReadDat();
WriteDat();
delete[] value;
}
2015-10-22 19:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 5楼 外部三电铃
你应该这么问:
int *value=new int[256*256];
……
if(fread(&value[i][j],8,256,fp)!=1) 这里某某编译器报错:[Error] invalid types 'int[int]' for array subscript

2015-10-23 08:21
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
得分:0 
回复 7楼 rjsp
好吧
2015-10-23 13:59
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
得分:0 
回复 7楼 rjsp
那怎么改咧
2015-10-23 14:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用william8070在2015-10-23 14:11:43的发言:

那怎么改咧
怎么改只有你自己知道呀!

对于代码
int *value=new int[256*256];
if(fread(&value[i][j],8,256,fp)!=1)
其中 value 是 int* 类型,那么 value[i] 就是 int 类型了,你在int类型的变量后面加[j]语法肯定是错的,没有人知道你想干什么。
重复你的错误,可以简单写成
int a;
a[1]; // 语法错误

2015-10-23 14:21
william8070
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2015-10-20
得分:0 
好像懂了,3q
2015-10-23 14:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458441-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.131047 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved