Estou começando a escrever um código, porém está dando um erro e não consigo resolver.
A intenção é ler de um arquivo dados de uma imagem PPM e armazenar numa matriz, usando alocação dinâmica.
o compilador está informando esse erro:
23 2 [Error] conversion to non-scalar type requested
essa linha: ppm1.pixel = (pixelPPM)malloc( (ppm1.largura) * (ppm1.altura) * sizeof(pixelPPM));
************arquivo structs.h:
#include<stdio.h>
#define MAX_FORMACT 126
typedef struct{
int R;
int G;
int B;
}pixelPPM;
typedef struct{
char formato[MAX_FORMACT];
int largura;
int altura;
int maxCores;
pixelPPM **pixel;
} PPM;
PPM leituraPPM(FILE *fPPM);
********arquivo .c
#include<stdio.h>
#include<stdlib.h>
//#include"structs.h"
PPM leituraPPM(FILE *fPPM){
int i=0, j=0, max=0;
PPM ppm1;
//pegando o formato do arquivo e verificando se e um PPM
fscanf(fPPM, "%s", ppm1.formato);
if(ppm1.formato!="P2"){
printf("Arquivo nao e um PGM.\n");
return ppm1;
}
//pegando as dimenções e max de cores da imagem
fscanf(fPPM, "%d %d %d", &ppm1.largura, &ppm1.altura, &ppm1.maxCores);
//fazendo alocação de memoria para matriz de pixels
ppm1.pixel = (pixelPPM)malloc( (ppm1.largura) * (ppm1.altura) * sizeof(pixelPPM));
//preenchendo matriz de pixels
for(j=0;j<ppm1.altura; j++){
for(i=0;i<ppm1.largura;i++){
fscanf(fPPM, "%d", ppm1.pixel[j]->R);
fscanf(fPPM, "%d", ppm1.pixel[j]->G);
fscanf(fPPM, "%d", ppm1.pixel[j]-> ;
}
}
return ppm1;
}