Code Bye

c语言编程问题求帮助

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
int *p = NULL;
scanf(“%d”,&num);
printf(“num = %d\n”,num);
//定义一个动态数组,输入19,就有19个元素
p = (int *)malloc(sizeof(int)*num);  //分配内存
printf(“%p\n”,p);  //打印地址
if(p = NULL)
{
printf(“内存分配失败\n”);
}
else
{
printf(“内存分配成功\n”);
for (i = 0;i < num;i++)
{
p[i] = i;  //按照数组方式访问内存
printf(“d\n”,p[i]);
}
free(p);
}
system(“pause”);
}
调试时总报错

问一下师傅们这是什么原因造成的?
解决方案

40

printf(“%p\n”,p);  //打印地址
if(p = NULL)
{
printf(“内存分配失败\n”);
}
改成 if(p==NULL)
这个是有警告的。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c语言编程问题求帮助