#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* a = malloc(2 * sizeof(char));
a[0] = '0';
a[1] = '1';
a[2] = '2';
a[3] = '4';
printf("%s\n", a);
}
안녕하세요, malloc 함수가 무엇을하는지 이해하려고합니다. 내가 위의 코드는 문자열 'a'에 단지 2 바이트의 메모리를 선언하기 때문에 오류를 반환해야한다는 것을 알았습니다. 그러나 오류를 표시하지 않습니다. 이유를 설명하십시오.문자열을 C로 저장하는 malloc 함수
정의되지 않은 동작이 표시됩니다. –
정의되지 않은 동작은 무엇입니까? 설명해주세요. – Lokesh
* 관찰 된 동작과 * 정의 된 * 동작을 혼동하지 마십시오. 프로그램이 잘못 구성되었습니다. 따라서, 거의 모든 것을 전시 할 수 있으며, 불운 한 경우에도 일할 수도 있습니다. – WhozCraig