一个关于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次幂







