#include <stdio.h>
//#include <stdlib.h>
int* createArray(int size) {
int* arr = (int *)malloc(size * sizeof(int)); // 动态分配内存
if (arr == NULL) { // if malloc fails, arr will be NULL
printf("Memory allocation failed!\n");
return 1; // return with error code
}
for (int i = 0; i < size; i++) {
arr[i] = i + 1; // 为数组元素赋值
}
return arr; // 返回指向动态分配内存的指针
}
int main() {
int* ptr = createArray(5); // 接收指向动态分配内存的指针
for (int i = 0; i < 5; i++) {
printf("%d ", ptr[i]); // 打印数组元素
}
free(ptr); // 释放动态分配的内存
return 0;
}
如上会异常,原因是
在Windows上使用malloc函数时,需要包含stdlib.h头文件