malloc函数直接返回NULL

main里面就一个malloc函数都无法分配空间,本人大一计算机专业的,用的是轻薄本(小新pro14),目前还没写多少代码,也没有超过300行的,前两天写malloc函数都还没有问题,今天写就出问题了,想请问一下是笔记本电脑内存不够的原因吗?😭😭

img

if这个写法不对,正是因为空间分配成功,是if下面的语句才会执行。一般来说,动态分配的内存空间地址不可能为零,所以条件必然为真。正确写法是if(!(p=(int*)malloc(sizeof(int))))

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/377837
  • 除此之外, 这篇博客: 手把手教你如何用malloc申请动态内存中的 动态申请二维数组(连续的) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我们以申请一个m行n列的数组为例。
    int **a=(int **)malloc( m *sizeof(int *));
    这一行相当于申请行内存
    a[i]=(int *)malloc(n * sizeof(int *));
    这一行相当于为第i+1行申请n列元素
    在这里插入图片描述;
    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^