Я написал ошибочный фрагмент кода, который разбился только после нескольких прогонов в режиме выпуска в визуальной студии (более 50). Может кто-нибудь объяснить, почему этот фрагмент кода не разбился намного раньше.memcpy сбой после нескольких прогонов
char *pcBuffer= "Some Text";
char *pctempBuff = NULL;
pctempBuff = malloc(100);
memset(pctempBuff,0,100);
memcpy(pctempBuff,pcBuffer,100);
Вышеупомянутый код разбился после нескольких прогонов.
я исправил его на следующий код, который является правильным, и он больше не падает
char *pcBuffer= "Some Text";
char *pctempBuff = NULL;
pctempBuff = malloc(strlen(pcBuffer)+1);
memset(pctempBuff,0,strlen(pcBuffer)+1);
memcpy(pctempBuff,pcBuffer,strlen(pcBuffer)+1);
Что это за программа? снова загружается ли изображение программы после каждого malloc, или вы mallocing в том же экземпляре программы? – Magn3s1um
Как правило, нет смысла обсуждать * неверную * программу, так как не требуется детерминированного поведения. –
@ Magn3s1um Это часть огромной программы. Исправлено это решение моей проблемы. Я просто хотел узнать, почему он вызывает крах после долгого времени. – user1692342