数据结构基础(C语言版)(朱仲涛翻译)代码学习 第一章002

来源:互联网 发布:51单片机at指令 编辑:程序博客网 时间:2024/06/06 02:36

程序1.1分配、释放存储空间

优化:(运行环境依然是vs2010)

方法二:如果存储空间不足,调用malloc会使申请失败。
#include<stdio.h>
#include <stdlib.h>

int main()
{
int *pi;
float *pf;

//如果存储空间不足,调用malloc会使申请失败
//if (NULL==(pi=(int *)malloc(sizeof(int)))||NULL==(pf=(float *)malloc(sizeof(float))))
//{
// fprintf(stderr,"Insufficient memory");
// exit(EXIT_FAILURE);
//}


if (!(pi=(int *)malloc(sizeof(int)))||!(pf=(float *)malloc(sizeof(float))))
{
fprintf(stderr,"Insufficient memory");
exit(EXIT_FAILURE);
}

*pi=1;
*pf=1.089;
printf("%d %f\n",*pi,*pf);
free(pi);
free(pf);

system("pause");//解决窗口一闪而过

return 0;
}

方法三:定义宏语句,在宏语句中使用malloc,如果malloc失败则退出。

#include<stdio.h>
#include <stdlib.h>

#define MALLOC(p,s) \
if (!(p=malloc(s))){\
fprintf(stderr,"Insufficient memory");\
exit(EXIT_FAILURE);\
}

int main()
{
int *pi;
float *pf;

MALLOC(pi,sizeof(int));
MALLOC(pf,sizeof(float));

*pi=1;
*pf=1.089;
printf("%d %f\n",*pi,*pf);

system("pause");//解决窗口一闪而过

return 0;
}


扩充学习:(以下为粘贴别人的,程序也为运行过)

C语言fprintf()函数:输出函数(格式化输出数据至文件)
下一节>
相关函数:printf, fscanf, vfprintf


头文件:#include <stdio.h>


定义函数:int fprintf(FILE * stream, const char * format, ...);


函数说明:fprintf()会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。


返回值:关于参数format 字符串的格式请参考printf(). 成功则返回实际输出的字符数, 失败则返回-1, 错误原因存于errno 中.


范例
#include <stdio.h>
main()
{
    int i = 150;
    int j = -100;
    double k = 3.14159;
    fprintf(stdout, "%d %f %x \n", j, k, i);
    fprintf(stdout, "%2d %*d\n", i, 2, i);
}


执行:
-100 3.141590 96
150 150





0 0
原创粉丝点击