c - 我必须为 NULL 指针进行 malloc 吗?我什么时候需要为指针进行 malloc?

标签 c pointers

我对什么时候应该为指针分配空间有点困惑。任何帮助将不胜感激。

最佳答案

函数malloc用于在程序执行期间分配一定量的内存。 malloc 函数将从堆中请求一 block 内存。

I'm a little confused as to when should I malloc space for a pointer.

您不必总是使用 malloc 来使用指针。 malloc 仅当您需要在运行时动态请求空间时才应使用。例如,

char arr[20]="Stack";
char *ptr; //It is pointer
ptr = arr;
printf("%s", ptr);

在上面的例子中,我没有使用malloc,但我仍然可以使用指针ptr。唯一重要的是指针应该指向您打算工作的某个有效内存位置。将变量的地址分配给指针

int a;
int *ptr=&a;

或者

在运行时使用malloc请求内存。

int *ptr=malloc(sizeof(int));

Do I have to malloc for NULL pointers?

答案是否定的。在计算中,空指针有一个保留值,用于指示该指针未引用有效对象。 NULL 是分配给指针的值,这意味着它们没有引用有效的对象。只需将 NULL 值赋给指针即可。

int *ptr=NULL:

关于c - 我必须为 NULL 指针进行 malloc 吗?我什么时候需要为指针进行 malloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731929/

相关文章:

c - 初始化元素代码错误

c - 使用 OpenGL 和 LibCurl 等 C 库

c - 将结构传递给函数

c++ - vs2013 : static member does not link

c - 数组指针(在同一行中声明和定义给出垃圾值,而在不同行中工作得很好)

C ArrayList 崩溃

c - 将内存块分配给结构

c++ - 指针分配说明

c - 声明和释放二维动态数组和结构数组

c++ - 将二维数组传递给 C 和 C++ 中的函数