一个关于malloc的小实验,不解中。。。
程序代码:
以下测试环境为xp+vc6.0 实验测试一、 #include <stdio.h> #include <malloc.h> int main(void) { char *t; t[0]='5'; t[1]='6'; return 0; } 这里编译会有一个警告:local variable 't' used without having been initialized 变量t没有初始化 运行之,会有内存非法访问提示 实验测试二、 #include <stdio.h> #include <malloc.h> int main(void) { int n=4275; char *t; t=(char*)malloc(1); for(int i=0;i<n;i++) { t[i]=i%128; } return 0; } 这里编译链接都没问题 运行之,会有内存非法访问提示 实验测试三、 #include <stdio.h> #include <malloc.h> int main(void) { int n=4274; char *t; t=(char*)malloc(1); for(int i=0;i<n;i++) { t[i]=i%128; } return 0; } 这里编译链接运行都没问题 我的问题是:t=(char*)malloc(1); 到底申请到了多大的空间 4274又是什么东东 它也不是2的N次幂