![]() |
| ||
| About matris allocation and reading pgm files // Tuba.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdlib.h> unsigned char** pgmRead(char *fileName) { unsigned char **pixel; int versiyon; int yukseklik; int genislik; int griSeviyesi; char yorum[256]; int head[3]; char c1,c2; char ch; unsigned char *block; int i,j; FILE *inf; inf = fopen(fileName, "rb"); if (inf == NULL) { printf("Dosya yok!n"); exit(1); } else { fscanf(inf, "%c%c", &c1, &c2); printf("%c %c",c1,c2); if (c1 != 'P' || (c2 != '2' && c2 != '5')) { printf("PGM formatı desteklemeyen dosya!n"); fclose(inf); exit(1); } } for (j=0; j<3; j++) { do { i=0; ch = fgetc(inf); if (ch == '#') do { yorum[i++]=fgetc(inf); } while (yorum[i-1]!= 'n'); yorum[i]=0; // printf("COMMENT: %s",str); //*** if wished comments can be printed out here } while(ch < '0' || ch > '9'); i = 0; yorum[i++] = ch; do { ch = fgetc(inf); yorum[i++] = ch; } while(ch >= '0' && ch <= '9'); yorum[i-1] = 0; head[j] = atoi(yorum); i=0; } versiyon= c2-'0'; genislik= head[0]; yukseklik=head[1]; griSeviyesi=head[2]; //____________hata bunun altında bi yerlerde pixel=(unsigned char **)calloc(genislik,sizeof(unsigned char)); for(i=0;i<genislik;i++) { pixel[i]=(unsigned char*)calloc(yukseklik,sizeof(unsigned char)); } block=(unsigned char*)calloc(genislik,sizeof(unsigned char)); for(i=0;i<genislik;i++){ for(j=0;yukseklik;j++){ fread((void *)block,sizeof(unsigned char),genislik*yukseklik,inf); pixel[i][j]=(unsigned char)block[(j*genislik)+i]; } } free(block); fclose(inf); return (pixel); } //int _tmain(int argc, _TCHAR* argv[]) int main() { char dosyaIsmi[15]; printf("Cevirilecek dosyayı giriniz.\n"); scanf("%s",&dosyaIsmi); pgmRead(dosyaIsmi); return 0; } This code is fail cause of memory allocaiton;but I don't understand why. How can I correct it? |
| All times are GMT -4. The time now is 7:57 am. |
Forum system based on vBulletin Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
©2003 - 2010 DaniWeb® LLC