Я писал такие вещи, как
char *x=NULL;
в предположении, что
char *x=2;
создаст указатель char
для адреса 2.
Но, в В учебнике по программированию GNU C, в нем указано, что int *my_int_ptr = 2;
хранит целочисленное значение 2
для любого случайного адреса в my_int_ptr
, когда он выделен.
Казалось бы, это означает, что мой собственный char *x=NULL
присваивает то, что значение NULL
, переданное в char
, относится к некоторому случайному адресу в памяти.
В то время как
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *x=NULL;
if (x==NULL)
printf("is NULL\n");
return EXIT_SUCCESS;
}
действительно делает печать
имеет значение NULL
когда я компилирую и запускаю его, я обеспокоен тем, что я полагаюсь на поведение undefined или, по крайней мере, недоопределенное поведение, и что я должен написать
char *x;
x=NULL;
вместо.