c语言内存操作
基本概念
具体函数
void *malloc(size_t size)
申请一个所需大小的内存空间
void *calloc(size_t nitems, size_t size)
申请一个所需大小的内存空间,并设置内容为零
void *realloc(void *ptr, size_t size)
尝试重新分配之前申请的内存空间大小
void free(void *ptr)
释放分配的内存空间
实例:
char *str = (char *)malloc(sizeof(char)*20); //(char *)转换为指针型数组变量
str = "hello world";
puts(str);
free(str);
//输出:hello world
修改内存值
#include<stdio.h>
#include<stdlib.h>
int main()
{
char str[10] = "abc";
puts(str);
char *p = (char *)(str);
*p = 'j';
*(p+1) = 'k';
*(p+2) = 'l';
puts(str);
*(char *)(str) = 'e'; //先(cahr *)转换为指针型数组,再通过指针运算指向数据
*(char *)(str+sizeof(char)) = 'f';
*(char *)(str+sizeof(char)*2) = 'g';
puts(str);
printf("%#X,%#X,%#X",&str,&str[1],&str[2]);
return 0;
}
/*输出:
abc
jkl
efg
0X61FE0E,0X61FE0F,0X61FE10
*/