在访问分配的内存时获得访问违规错误

  • 本文关键字:访问 错误 分配 内存 c
  • 更新时间 :
  • 英文 :


我使用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"比您的错误更长

最新更新