Различные выходные вызовы Malloc на Clang, применяя параметры компилятора -00 против -03C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Различные выходные вызовы Malloc на Clang, применяя параметры компилятора -00 против -03

Сообщение Anonymous »

Следующий код запускается параметры компилятора -O3 vs -o0 Результаты Различный вывод:

Код: Выделить всё

#include 
#include 

int main(){
int *p = (int*)malloc(sizeof(int));
int *q = (int*)realloc(p, sizeof(int));

*p = 1;
*q = 2;

if (p == q)
printf("%d %d", *p, *q);

return 0;
}
Я был очень удивлен результатом. -O3 -вывод: 1 2


Это ошибка?

Код: Выделить всё

int *p = (int*)malloc(sizeof(int));
*p = 1;
тестирование его на GCC, кажется, работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/294 ... s-00-vs-03
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»