我使用malloc
分配了100 MB的内存block = (char *)malloc(sizeof(10485760)); // char *block is a global variable
,然后我将块中的值分配给某些局部变量说localblock
char *localblock = block;
当我尝试在1 MB之后访问位置并在该位置复制字符串时,我会得到访问违规错误
int si = 1048576;
for (int i=0; i < si; ++i)
++localptr;
strcpy(localblock,"random_string");
&lt; --- im在这里遇到错误。请帮助我
block = (char *)malloc(sizeof(10485760));
仅分配sizeof(int(字节数,当您访问内存之外的内存最终将访问无效的内存,并且程序可能会崩溃
使用 malloc
时,不能保证分配。
block = (char *)malloc(sizeof(10485760));
是尝试为 10485760 分配空间,它是 int
-含义为32/64位机器上的4/8字节。"random_string"
比您的错误更长