в следующем фрагменте я хочу, чтобы функция принимала двойной указатель (двумерный массив), который может иметь любой тип данных (в данном случае, целочисленный), и использовать memcpy для копирования одного элемента массива одновременно в другую переменную. , Он прошел компилятор, но все еще показывает нарушение прав доступа.
Я посмотрел всюду по форуму, но все еще не могу понять это правильно.
Любые советы приветствуются. Я почти опустошен сложностью C.
void ShowImg(void **ptr, IplImage *sample, char window_name[])
{
int value;
IplImage *sml_img= cvCreateImage(cvSize(sample->width,sample->height),IPL_DEPTH_8U, 1);
for(int j=0; j<sample->height; j++)
for(int i=0; i<sample->width; i++){
memcpy(&value, ptr+i*sizeof(int)+j*sample->width*sizeof(int), sizeof(int));
((uchar *)(sml_img->imageData + sml_img->widthStep*j))[i] = value;
printf("%d,%d\n", i, j);
}
cvNamedWindow(window_name);
cvShowImage(window_name, sml_img);
cvWaitKey(0);
cvDestroyWindow(window_name);
cvReleaseImage(&sml_img);
}