指针数组堆上分配内存(动态分配内存)
2016-10-10 23:04
190 查看
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> char **allocateSpace(int len) { if (len <= 0) { return NULL; } char **temp = (char **)malloc(sizeof(char *)*len); if (temp == NULL) { return NULL; } memset(temp, 0, sizeof(char *)*len); for (int i = 0; i < len; i++) { temp[i] = (char *)malloc(100); if (temp[i] == NULL) { goto End; } memset(temp[i], 0, 100); sprintf(temp[i], "%2d_hello world!", i + 1); } return temp; End: for (int i=0;i<len;i++) { if (temp[i] != NULL) { free(temp[i]); temp[i] = NULL; } } free(temp); temp = NULL; return NULL; } void freeAll(char **str, int len) { if (str == NULL) { return; } for (int i = 0; i<len; i++) { if (str[i] != NULL) { free(str[i]); str[i] = NULL; } } free(str); str = NULL; } void test() { char **p = NULL; p = allocateSpace(10); for (int i = 0; i < 10; i++) { printf("%s\n", p[i]); } freeAll(p, 10); } void main() { test(); system("pause"); }
相关文章推荐
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存分配详解、指针与数组[C++][内存管理]
- 内存分配详解、指针与数组[C++][内存管理]
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存分配详解、指针与数组[C++][内存管理]
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存分配详解、指针与数组[C++][内存管理] --转载于--Gaius Julius Caesar
- 内存出错,内存泄露,数组越界,悬空指针,错误分配
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 结构体指针数组 内存分配 释放
- 字符数组和字符指针在分配内存时的差别
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 鸡啄米:C++编程入门系列之三十二(数组、指针和字符串:动态内存分配和释放)