2015-11-19 7 views

ответ

1

Предполагаете, вы можете получить размеры изображения из файла (назовите их W и H). Если нет, прочитайте о формате от wikipedia

Теперь вам нужно выделить память для 2d-массива, который вы хотите создать. Вы будете нуждаться в char **buf (в предположении, 8-битные оттенки серого. Вы можете использовать long или long long для 32/64 битных изображений.

Далее выделить пространство для указателей, где вы будете хранить строки изображения.

buf=(char**)malloc(sizeof(char*)*H); 

Далее необходимо выделить место для каждой строки и читать из стандартного ввода (вы можете использовать scanf в цикле).

for(int y=0;y<H;y++){ 
    buf[y]=(char*)malloc(sizeof(char)*W); 
    for(int x=0;x<W;x++) 
    scanf("%d",&buff[y][x]); 
} 

и вы сделали! Обратите внимание, что вы должны сделать проверку на таНос Ретурах n и ограничить значения W и H до нормальных значений, если вы планируете распространять код.