Совет - задать этот вопрос в програмистком форуме (на vingrad например). Из 4х советов, озвученных здесь - 3 неправильные (или провокационные, уж не знаю).
Ваше последнее решение тоже неверное.
Код
char *buffer;
buffer = calloc(1, 51); << Нафига здесь динамическая память?
int x, y;
/*Здесь есть некоторый код, в котором происходит присваивание переменным x, y, buffer*/
MyArray[x][y] = calloc(1, sizeof(buffer)); << Выделили буфер, размером в 1 указатель, а нужно - в длинну строки + 1
strcpy(MyArray[x][y], buffer); << Зафигачили строку в выделенную память и за ее границы, заодно разрушили всю кучу динамической памяти
free(buffer);
Сообщение отредактировал XVR - Feb 11 2009, 07:51