質問: malloc(datasize))){ perror("malloc"); return 1; } // 確保したメモリ領域に画像データを読み込む // 読み込みに失敗した場合はエラーで終了 if (read(fd_pic[name_new], bmpdata2, datasize) != datasize){ perror("read(file)"); free(bmpdata2); return 1; } //画像ファイルをクローズ close(fd_pic[name_new]); // LCDに縮小した画像を表示 draw_bmp_small(pfb2, xx[x], yy[y], bmp.ih.biWidth, bmp.ih.biHeight, bmpdata2); name_new++; no++; } } ``` 画像を縮小して6枚表示するプログラムの一部です。 画像縮小表示、最初の0~5.bmpまでの表示はうまくできましたが、次の6枚(6~11.bmp)を表示しようとページを移動し、「// 計6枚の画像を読み込む」という方を再度実行すると6枚表示するのですが、Segmentation faultになって終了してしまいます。 調べると、確保された領域以外を参照したことによるエラーだと出て、プログラムを見直してみましたがよく分かりませんでした。 このプログラムだけではわからないかもしれませんが、気づいたことがあったら教えてください。 お願いします。
回答: 二つ目のソースの ``` // BTN_PICTUREでタッチされた画像の名前表示(**.bmp) picname[no] = name_new; ``` この、no は何が入っていますか? きちんと設定していますか?