Вызывает ли освобождение int *, который был назначен для char * (выделенного с помощью `malloc`), неопределенное поведение?

Название может сбивать с толку. предполагатьstr указатель, выделенныйmalloc. ptrтипаint*, присваивается ему и освобождается, как показано фрагментом кода ниже:

char* str = malloc(64);
int* ptr = str;

free(ptr);

Я пытался скомпилировать приведенный выше код. Это просто дает предупреждение:

source_file.c: In function ‘main’:
source_file.c:10:16: warning: initialization from incompatible pointer type
     int* ptr = str;
                ^

Вызывает ли приведенный выше код неопределенное поведение?
Освобождает ли приведенный выше фрагмент кода память, выделеннуюmalloc заstr?

Ответы на вопрос(0)

Ваш ответ на вопрос