学点 C 语言(23): 数据类型 - 给指针分配内存(2)
3. 像数组一样使用:
#include
#include
int main(void)
{
int *p = (int *)malloc(sizeof(int)*3);
p[0] = 111;
p[1] = 222;
p[2] = 333;
printf("%d, %d, %dn", p[0], p[1], p[2]);
free(p);
getchar();
return 0;
}
4. calloc 会同时初始化内存, malloc 则不会, 不初始化应该更快些:
#include
#include
int main(void)
{
const int num = 10;
// calloc 和 malloc 参数也有点区别
long *p1 = (long *)calloc(num, sizeof(long)); /* 会初始化 */
long *p2 = (long *)malloc(num * sizeof(long)); /* 不会初始化 */
int i;
for (i = 0; i < num; i++) {
printf("%d, %dn", p1[i], p2[i]);
}
free(p1);
free(p2);
getchar();
return 0;
}
5. realloc:
#include
#include
int main(void)
{
int num = 10;
int i;
long *p = (long *)malloc(num * sizeof(long));
printf("内存地址: %pn~~~~~~~~n", p);