Вызов функций ipp портит переменные - PullRequest
0 голосов
/ 03 января 2019

Через некоторое время я снова поднял кодирование с IPP и произвел обновление с windows 7 до windows 10. Но теперь кажется, что это может повредить значение переменных, когда я могу использовать функцию ipp malloc.

Например,этот код:

#include <stdio.h>
#include "ipp.h"


int main(void)
{
    IppiSize roiSize = {128,128};
    IppiSize  kernelSize= {3,3};
	int srcStep = 0;
	Ipp8u* pSrc = NULL;
	
	printf("%d %d \n", roiSize.width, roiSize.height);
	printf("%d %d \n", kernelSize.width, kernelSize.height);
	
    pSrc = ippsMalloc_8u(0);
	
	printf("%d %d \n", roiSize.width, roiSize.height);	
	printf("%d %d \n", kernelSize.width, kernelSize.height);	
    return 0;
}

возвращает:

 
128 128
3 3
128 0
3 128

, поэтому он изменяет значения roiSize и kernelSize, даже если он не предназначен для этого.Стандартный C malloc работает нормально и не портит переменные.Я скомпилировал (без предупреждения) с Cygwin x86 GCC 7.4.0, на Windows 10 Pro версии 1709, используя

HDIR = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.1.144\windows\ipp\include"
LDADD = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.1.144\windows\redist\ia32_win\ipp" -lippi -lipps -lippvm  -lippcore -lippvm  -lm
CXXFLAGS = -O0 
SOURCES= test.cpp 
OBJECTS1=$(patsubst %.cpp,%.o,$(SOURCES))
OBJECTS=$(patsubst %.c,%.o,$(OBJECTS1))

all debug profile static depend: $(OBJECTS)
	g++ -o test.exe test.o $(CXXFLAGS) -L$(LDADD) 

	
%.o: %.cpp
	g++ -c $< $(CXXFLAGS) -I $(HDIR)  

%.o: %.c
	g++ -c $< $(CXXFLAGS) -I $(HDIR) 
	
clean:
	rm -f *.o

Кто-нибудь уже видел что-нибудь подобное?Я не могу найти причину проблемы.

...