格式化字符串
将不同类型的变量放到一个字符串里。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <stdio.h>
int main() { int a = 0; double b = 20; char c = 'a'; char str[20] = { '\0' };
sprintf(str, "%d, %lf, %c", a, b, c); puts(str);
return 0; }
|
点击测试代码
动态内存分配
malloc
函数是动态内存分配函数,使用数组和指针的时候可以用到。目的是,初始化数组时会占用一定的内存,而为了保证数组能兼容多种情况,初始化的长度往往很大,容易造成浪费,这时就可以利用动态内存分配函数,用多少给多少。但是分配的内存的数组用完了以后要及时清理,否则会堆积。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include <stdio.h>
#include <stdlib.h>
int main() { signed int n = 5;
signed int* p = NULL,* q = NULL; p = (int*)malloc(sizeof(*p) * n);
if (p != NULL) { q = p;
for (signed int i = 0; i < n; i = i + 1) { *p = -i; p = p + 1; }
p = q; p = p + 2; printf("指针指向的值为:%d\n", *p);
free(q); } else { printf("malloc error!\n"); exit(-1); }
p = NULL; q = NULL; return 0; }
|
点击测试代码
在清理动态内存的时候,就会把这一段内存里的所有数据初始化,指针地址不变。清理动态内存需要让指针指向最开始定义时的地址,所以对地址进行了备份。
增加了判断函数,判断是否成功分配内存空间,使程序更加严谨。