本文最后更新于 2024-07-16T17:12:53+09:00
简要的关于 c
的应用。
可以在 VOFA 中加入,简化代码调用体积。
c 分配空间
使用结构体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h> #include <stdlib.h>
struct Data { float *floatArray; char *charArray; };
int main() { int n = 5;
struct Data *data = (struct Data *)calloc(1, sizeof(struct Data)); data->floatArray = (float *)calloc(n, sizeof(float)); data->charArray = (char *)calloc(4, sizeof(char));
free(data->floatArray); free(data->charArray); free(data);
return 0; }
|
拼接不同类型空间
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
| #include <stdio.h> #include <stdlib.h>
int main() { int n1 = 3; int n2 = 4;
int *intArray = (int *)calloc(n1, sizeof(int)); for (int i = 0; i < n1; i++) { intArray[i] = i + 1; }
float *floatArray = (float *)calloc(n2, sizeof(float)); for (int i = 0; i < n2; i++) { floatArray[i] = i + 0.5; }
int totalSize = n1 + n2; void *combinedArray = malloc((n1 * sizeof(int)) + (n2 * sizeof(float)));
memcpy(combinedArray, intArray, n1 * sizeof(int)); memcpy((char *)combinedArray + n1 * sizeof(int), floatArray, n2 * sizeof(float));
free(intArray); free(floatArray); free(combinedArray);
return 0; }
|
动态创建二维数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <stdio.h> #include <stdlib.h>
int main() { int rows = 3; int cols = 4;
int **array2D = (int **)calloc(rows, sizeof(int *)); for (int i = 0; i < rows; i++) { array2D[i] = (int *)calloc(cols, sizeof(int)); }
for (int i = 0; i < rows; i++) { free(array2D[i]); } free(array2D);
return 0; }
|
动态字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <stdio.h> #include <stdlib.h> #include <string.h>
int main() { char *str = (char *)malloc(6 * sizeof(char)); strcpy(str, "Hello");
str = (char *)realloc(str, 11 * sizeof(char)); strcat(str, " World");
printf("%s\n", str);
free(str);
return 0; }
|
C 空间内存分配
https://cofallen.github.io/2024/07/14/build-page-by-hexo/